Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从dplyr的R mutate函数调用函数来添加计算列?_R_Dplyr - Fatal编程技术网

如何从dplyr的R mutate函数调用函数来添加计算列?

如何从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

我被困在如何向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) %>%
  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()这正是我需要的!我完全错过了。非常感谢你让我走上正轨。