通过R中的变量将值传递给函数
Posted
技术标签:
【中文标题】通过R中的变量将值传递给函数【英文标题】:Passing value to Function through variables in R 【发布时间】:2021-07-18 12:10:05 【问题描述】:我有以下数据框
library(dplyr)
vec1 = 1:10 vec2 = 11:20
df = data.frame(col1 = vec1, col2 = vec2)
x <- df %>% summarize(mu = mean(col1, na.rm=TRUE)) x
新建而不是直接在 mean 函数中使用 col1,我想先将 col1 保存到一个变量中,然后将该值传递给 mean。这就是我想做的事情。
library(dplyr)
vec1 = 1:10 vec2 = 11:20
df = data.frame(col1 = vec1, col2 = vec2)
var = df$col1
x <- df %>% summarize(mu = mean(var, na.rm=TRUE)) x
但是 R 不接受它并抛出以下错误。 错误:“x % summarise(mu = mean(var, na.rm=TRUE)) x”中出现意外符号
那么我如何通过变量将值传递给均值?
【问题讨论】:
不要忘记换行或 ; x之前 @Waldi 所述的错误仅仅是因为表达式末尾的x
。它应该是不同的行
【参考方案1】:
您的代码可以正常工作,但我认为您想要做的是:
library(dplyr)
var = 'col1'
x <- df %>% summarize(mu = mean(.data[[var]], na.rm=TRUE))
x
【讨论】:
您能解释一下 .data[ ] 的用途吗?.data
用于将列存储为变量的子集 (var1
)。这是动态的,如果您想对 col2
执行相同的计算,您只需更改 var = 'col2'
而无需更改代码。以上是关于通过R中的变量将值传递给函数的主要内容,如果未能解决你的问题,请参考以下文章