如何从dplyr的R mutate函数调用函数来添加计算列?
我被困在如何向tibble添加新的计算列上。这是我的代码,当它执行时,新列(如何从dplyr的R mutate函数调用函数来添加计算列?,r,dplyr,R,Dplyr,我被困在如何向tibble添加新的计算列上。这是我的代码,当它执行时,新列(scs\u oi\u pre)中的所有行都包含相同的值,而输入是不同的。我希望逐行计算scs_pre_1和scs_pre_2的平均值。如果我用scs\u pre\u 1+scs\u pre\u 2替换mean(c(scs\u pre\u 1,scs\u pre\u 2),则可以很好地计算总和,但使用函数才是问题所在 scsData <- tibble(scs_pre_1, scs_pre_2) %>% m
scs\u oi\u pre
)中的所有行都包含相同的值,而输入是不同的。我希望逐行计算scs_pre_1
和scs_pre_2
的平均值。如果我用scs\u pre\u 1+scs\u pre\u 2
替换mean(c(scs\u pre\u 1,scs\u pre\u 2)
,则可以很好地计算总和,但使用函数才是问题所在
scsData <- tibble(scs_pre_1, scs_pre_2) %>%
mutate(scs_oi_pre = mean(c(scs_pre_1, scs_pre_2)))
scsData%
突变(scs_oi_pre=平均值(c(scs_pre_1,scs_pre_2)))
输出
你能告诉我我遗漏了什么吗?一个
dplyr
习惯用法是将rowwise()
用于:
库(dplyr)
df%>%
行()
变异(平均值=平均值(c(前1,前2)))
#一个tibble:10x3
#顺时针:
前1个前2个平均值
1 -0.560 1.22 0.332
2 -0.230 0.360 0.0648
3 1.56 0.401 0.980
4 0.0705 0.111 0.0906
5 0.129 -0.556 -0.213
6 1.72 1.79 1.75
7 0.461 0.498 0.479
8 -1.27 -1.97 -1.62
9 -0.687 0.701 0.00725
10 -0.446 -0.473 -0.459
数据:
set.seed(123)
df一个dplyr
习惯用法是将rowwise()
用于:
库(dplyr)
df%>%
行()
变异(平均值=平均值(c(前1,前2)))
#一个tibble:10x3
#顺时针:
前1个前2个平均值
1 -0.560 1.22 0.332
2 -0.230 0.360 0.0648
3 1.56 0.401 0.980
4 0.0705 0.111 0.0906
5 0.129 -0.556 -0.213
6 1.72 1.79 1.75
7 0.461 0.498 0.479
8 -1.27 -1.97 -1.62
9 -0.687 0.701 0.00725
10 -0.446 -0.473 -0.459
数据:
set.seed(123)
df如果你可以发布一个样本数据集来处理,这会很有帮助。dput(df)
或者,如果它是一个大数据帧,dput(head(df))
是好的。或者,正如我在回答中添加的,你可以创建玩具数据来演示你的问题。使用rowMeans
:tible(scs_pre_1,scs_pre___2)%>%mutate(scs_oi_pre=rowMeans()
谢谢@ronak shah,这也行得通,但我的代码比我给出的简单示例要复杂一些,最后,我需要使用rowwise()进行计算。如果您可以发布一个示例数据集来处理,这会很有帮助。dput(df)
或者,如果是大数据帧,dput(head(df))
很好。或者,正如我在回答中添加的,您可以创建玩具数据来演示您的问题。使用rowMeans
:TIBLE(scs_pre_1,scs_pre_2)%%>%mutate(scs_oi_pre=rowMeans()
谢谢@ronak shah,这也行得通,但我的代码比我给出的简单示例要复杂一点,最后,我需要使用rowwise()进行计算。嗨@andrew_reece,rowwise()正是我需要的!我完全错过了这一点。非常感谢你让我走上正轨。嗨@andrew_reece,rowwise()这正是我需要的!我完全错过了。非常感谢你让我走上正轨。