r - 如何将 R 函数指向数据集的特定列?

标签 r

我有一个名为 df 的数据集,其中包含 ab 列,每列包含三个整数。我想为均值编写一个函数(显然这已经存在;我想编写一个更大的函数,这似乎是发生问题的地方)。然而,这个函数返回 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/

相关文章:

r - 如何在没有输入的情况下为绘图制作 Shiny 的按钮重新调用功能?

r - Xaringan 中的图像占位符

r - 如何从ctree函数中提取树结构?

r - 数据框中跨列的最大组合总和

r - 如何在 R 中求和或平均小时数

r - bit64 NA 不会在 data.frame 构造函数中复制

r - 提取第 N 次出现的行号

r - 将字符串拆分为话语并将同一说话人的话语分配给数据帧中的列

从列表中删除 NULL 元素

r - 在R中创建随机向量列表