R 如何根据每行中某些变量的个别平均值创建新变量?
我有以下数据帧: 我想在R中介绍以下内容:R 如何根据每行中某些变量的个别平均值创建新变量?,r,R,我有以下数据帧: 我想在R中介绍以下内容: 创建一个名为“Z”的新变量,并将其绑定到我的数据帧 这应该是每行的平均值 如果某个变量为空或包含“NA”,则不应将其计算为平均值 以下是我想要的输出: 以R表示的期望输出: 以下是我尝试过的: 我试着创建一个for循环,循环每一行来计算非空白变量的数量,然后将所有3个变量相加,除以非空白变量的数量。 问题是,我必须对9个变量执行相同的任务(在一个包含50个变量的数据帧中),这意味着一个重复的代码和9个变量的if块 有办法解决吗?base R中的
- 创建一个名为“Z”的新变量,并将其绑定到我的数据帧
- 这应该是每行的平均值
- 如果某个变量为空或包含“NA”,则不应将其计算为平均值
有办法解决吗?base R中的
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) })
x请添加一个代码块以在r中生成数据帧,以便更快地响应。是否希望将NA
值视为零?