我有以下问题:我有一个包含 80 列的矩阵,其名称有 10/11、21/22、31/32 或 42/43 个字符。名称完全不同,但长度始终适合四个组之一。现在我想添加四列,如果我得到与一组对应的列的所有值的总和。这是我的意思的一个小例子
a<-rnorm(1:100)
b<-rnorm(1:100)
cc<-rnorm(1:100)
dd<-rnorm(1:100)
eee<-rnorm(1:100)
fff<-rnorm(1:100)
g<-data.frame(a,b,cc,dd,eee,fff)
g$group1<-"sum of all columns of with headers of length 1 (in this case a+b)"
g$group2<-"sum of all columns of with headers of length 2 (in this case cc+dd)"
g$group3<-"sum of all columns of with headers of length 3 (in this case eee+fff)"
我能够使用 melt() 将矩阵传输到数据帧并使用 stringr::str_length() 执行操作。但是,我无法将其转换回我真正需要作为最终输出的矩阵。列没有按顺序排列,排序对我没有多大帮助,因为列数取决于先前计算的结果,并且每次再次定义数据框范围都太乏味了。希望你能帮忙。