我有一个包含100个参与者的数据的数据框,我想计算每个参与者的总分。一些参与者的数据完全丢失,但是,我仍然希望他们的总分是NA,总计= NA。
对于那些拥有部分/部分NA的参与者,我想对所有没有NA的分数求和。换句话说,我想计算每行的总数而不计算NA。当我使用rowSums(df[2:10], rm.na = T)
时,该函数计算行,但是对于那些完全丢失数据的行,该行给出0。
是否有任何方法可以在不删除NA的情况下计算每个参与者的总得分,并将总得分“ NA”分配给完全丢失的数据?预先谢谢你。
答案 0 :(得分:2)
只需使用apply并指定一个完全可以实现您想要的功能的函数-希望这会有所帮助:
apply(data,1,function(x){
if(sum(is.na(x))==ncol(data)){
return(NA)
}else{
return(sum(x,na.rm=T))
}})