我有一个带有一些布尔值(1/0)的数据框,如下所示(对不起,我无法弄清楚如何将它变成智能表)
Flag1.Sam Flag2.Sam Flag3.Sam Flag1.Ted Flag2.Ted Flag3.Ted
probe1 0 1 0 1 0 0
probe2 0 0 0 0 0 0
probe3 1 0 0 0 0 0
probe4 0 0 0 0 0 0
probe5 1 1 0 1 0 0
我有 64 个样本(Sam/Ted....等),它们位于名为 files 的列表中,即;
files <- c("Sam", "Ted", "Ann", ....)
我想创建一个列,对每个样本的标志值求和,以创建以下内容:
Sam Ted
probe1.flagsum 1 1
probe2.flagsum 0 0
probe3.flagsum 1 0
probe4.flagsum 0 0
probe5.flagsum 2 1
我对 R 相当陌生,试图在需要了解的基础上学习,但我尝试了以下方法:
for(i in files) {
FLAGS$i <- cbind(sapply(i, function(y) {
#greping columns to filter for one sample
filter1 <- grep(names(filters), pattern=y)
#print out the summed values for those columns
FLAGS$y <-rowSums(filters[,(filter1)])
}
}
上面的代码不起作用,我对如何前进有点迷茫。
任何人都可以帮助我解决这个问题或指出我要使用的命令/工具的正确方向。
谢谢你。