Ciao,这是一个可复制的例子。
df <- data.frame("STUDENT"=c(1,2,3,4,5),
"TEST1A"=c(NA,5,5,6,7),
"TEST2A"=c(NA,8,4,6,9),
"TEST3A"=c(NA,10,5,4,6),
"TEST1B"=c(5,6,7,4,1),
"TEST2B"=c(10,10,9,3,1),
"TEST3B"=c(0,5,6,9,NA),
"TEST1TOTAL"=c(NA,23,14,16,22),
"TEST2TOTAL"=c(10,16,15,12,NA))
我有列 STUDENT 到 TEST3B,并且想要创建 TEST1TOTAL TEST2TOTAL。TEST1TOTAL=TEST1A+TEST2A+TEST3A 以此类推为 TEST2TOTAL。如果 TEST1A TEST2A TEST3A 中缺少任何分数,则 TEST1TOTAL 为 NA。
这是我的尝试,但有没有减少编码行的解决方案?因为在这里我需要多次写出这条线,因为直到 TEST A 到 O。
TEST1TOTAL=rowSums(df[,c('TEST1A', 'TEST2A', 'TEST3A')], na.rm=TRUE)