2
我有一个矩阵6000列,每列属于我需要的100个“组”之一。我需要将这个矩阵转换成一个列表100个更小的矩阵。这是我所拥有的玩具例子:矩阵列表的矩阵组按列名称在R
mat = cbind(c(2,2,2),c(3,3,3),c(4,4,4),c(1,1,1))
colnames(mat) = c("2018.3 1","2018.3 2","2019.1 1","2019.2 2")
所以“集团”由每个colname的最后名称标识,这里有2组。我需要的结果会是什么样子:
list(cbind(c(2,2,2),c(4,4,4)),cbind(c(3,3,3),c(1,1,1)))
我一直在想,我想应该是这样的:
lapply(do.call(cbind,sapply(something here to find the columns in each group)))
,但我还没有搞清楚究竟是如何做到这一点。
你也可以做'组< - sapply(strsplit(X = colnames(垫),分裂=““),'[',2)'或'组< - gsub(“。*(\\ d +)$”,“\\ 1”,colnames(mat))' – MrFlick
谢谢@db正是我所需要的。 –