我有以下数据框:
我要在R中执行以下操作:
这是我想要的输出:
R中所需的输出:
这是我尝试做的事情:
我尝试创建一个for循环,该循环遍历每一行以计数非空白变量的数量,然后将所有3个变量相加并除以非空白变量的数量。 问题是,我必须对9个变量(在包含50个变量的数据帧中)执行相同的任务,这将意味着重复的代码以及是否有9个变量的块。
有办法解决吗?
答案 0 :(得分:1)
基数R中的apply
函数允许循环数据行。有关更多信息,请参见?apply
。 mean
函数具有一个na.rm
选项,可以自动处理NA
个条目。
x <- data.frame(
id = c("A", "B"),
A = c(5, 2),
B = c(NA, 5),
C = c(NA, 2)
)
x$Z <- apply(x[2:4], 1, function(x) { mean(x, na.rm = TRUE) })