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正是我所需要的。 –