R 循环遍历数据帧中的所有列,如果某列中存在值,则求和

R 循环遍历数据帧中的所有列,如果某列中存在值,则求和,r,for-loop,dataframe,sum,apply,R,For Loop,Dataframe,Sum,Apply,下面是一个示例数据集: y<-c("A1","B1", "C2", "A1", "B1","C1", "A1","B2", "C3", "A1", "B1", "C4", "A1", "B1","C4", "A1","B2", "C4", "A1","B1", "C4", "A1", "B1", "C4") test<- data.frame(matrix(y, nrow = 3, ncol = 8)) colnames(test) <- c("Learn_

下面是一个示例数据集:

y<-c("A1","B1", "C2", "A1", "B1","C1", "A1","B2", "C3", "A1", "B1", "C4", "A1", "B1","C4", "A1","B2", "C4", "A1","B1", "C4", "A1", "B1", "C4")
     test<- data.frame(matrix(y, nrow = 3, ncol = 8))
     colnames(test) <- c("Learn_1", "Car_1", "Car_2", "Fan_1", "Fan_2", "Fan_3","Kart_1", "God_1")
     test

y如果您正在查找每行找到与最后一列的值对应的值的次数,则此操作有效:

apply(测试,1,FUN=函数(x)长度(x[-8]==x[8]))

您可以轻松地将其调整为任意数量的列,甚至可以将其添加为新列

编辑:

如果是针对整个数据集,则可以使用:

test<-as.matrix(test);
table(test[,-8])[match(test[,8],names(table(test[,-8])))]

test那么这个示例输入的期望输出是什么?(尽可能具体)我想要的输出是数据帧中其他列中出现的最后一列中存在的值的总和的列表或表格。我的最终目标是把这个总和画成一个矩形。其中矩形是最后一列中的基因总数,并细分为百分比阴影(不同颜色)。百分比阴影是显示1次、2次、3次等的值的比例。Ouostiti有办法做到这一点,但数据混淆了,可能对应于不同的行,那么我检查的是什么?