在我的数据中,我有6列值。一些参与者有NA,其他参与者有一些值。现在我想为每个参与者计数,如果他们有值,则为+1,如果他们没有,则为0,所以这里是NA。列中有哪些值并不重要,只要有值就行。我该怎么做呢?用ifelse函数可以吗?
例如
2 4 6 8 10 12 -> 1
NA NA NA NA NA NA -> 0
1 3 5 7 9 11 -> 1
df <- data.frame(matrix(data=rep.int(c(1, 2, NA), 12), ncol=6))
df$test_not_na <- apply(df, 1, FUN=function(x){as.integer(!any(is.na(x)))})
df
# X1 X2 X3 X4 X5 X6 test_not_na
# 1 1 1 1 1 1 1 1
# 2 2 2 2 2 2 2 1
# 3 NA NA NA NA NA NA 0
# 4 1 1 1 1 1 1 1
# 5 2 2 2 2 2 2 1
# 6 NA NA NA NA NA NA 0