2
私は6000列の行列を持ち、各列は100個の "グループ"のうちの1つに属します。私はこの行列をリスト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に感謝します。 –