我有一个名为 df 的数据集,其中包含 a 和 b 列,每列包含三个整数。我想为均值编写一个函数(显然这已经存在;我想编写一个更大的函数,这似乎是发生问题的地方)。然而,这个函数返回 NA:
mean_function <- function(x) {
mean(df$x)
}
mean_function(a)
返回NA
,而mean(df$a)
返回2
。关于 R 函数如何处理数据集,我是否遗漏了什么,或者其他问题?
最佳答案
我们需要 [[
而不是 $
,因为它会逐字检查 x
作为列并传递字符串
mean_function <- function(x) {mean(df[[x]])}
mean_function("a")
如果我们需要传递不带引号的列名称,请替换
并使用deparse
转换为字符
mean_function<- function(x) {
x <- deparse(substitute(x))
mean(df[[x]]
}
mean_function(a)
关于r - 如何将 R 函数指向数据集的特定列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62922758/