首页 > 解决方案 > 如何在 R 中反映函数中的长参数

问题描述

感谢您的所有帮助。

我想function用 R 制作宏。在function里面,有很长的参数。这个论点不会printreturn具体值。但我想让论证的结果得到体现。

例如,我提出了一些论点dplyr

i是数据框。我创建了数据集test

set.seed(1001)
a<-rnorm(10)
b<-rnorm(10)
test<-data.frame(cbind(a,b))
test

然后我想制作专栏c。将ca负数b

fun<-function(i){
i<-i%>%mutate(c=a-b)}
fun(i=test)

但是,当我检查 时testc没有生成变量。

如何使函数中参数的结果得到反映?

标签: rfunction

解决方案


您需要添加return函数并将值分配回test. 或者由于 R 默认返回函数的最后一行,你可以这样做

library(dplyr)

fun <- function(i) i %>% mutate(c = a - b)
test <- fun(test)
test

#        a      b      c
#1   2.189  0.303  1.886
#2  -0.178  1.634 -1.812
#3  -0.185 -0.622  0.437
#4  -2.507  0.467 -2.974
#5  -0.557  1.419 -1.977
#6  -0.144  0.110 -0.254
#7   1.092  1.870 -0.778
#8  -0.623 -1.030  0.407
#9  -0.907 -1.342  0.434
#10 -1.594  0.554 -2.148

推荐阅读