在R函数中使用csv列名作为参数

在R函数中使用csv列名作为参数,r,function,csv,R,Function,Csv,我正在尝试编写一个函数,该函数将打开一些.csv文件,并对这些数据帧的特定部分执行一些计算。我在函数中将列名作为参数传递时遇到问题,我不知道为什么。类似这样的情况(最简单的工作示例,我的函数比这更复杂): 我得到这个错误: [1] NA Warning message: In mean.default(data$columnname) : argument is not numeric or logical: returning NA 但是,如果我运行以下命令: data <- r

我正在尝试编写一个函数,该函数将打开一些.csv文件,并对这些数据帧的特定部分执行一些计算。我在函数中将列名作为参数传递时遇到问题,我不知道为什么。类似这样的情况(最简单的工作示例,我的函数比这更复杂):

我得到这个错误:

[1] NA
Warning message:
In mean.default(data$columnname) :
   argument is not numeric or logical: returning NA
但是,如果我运行以下命令:

data <- read.table("~/Desktop/test.csv",sep=",",header=TRUE);
mean(data$numbers);
。。。这就是我想要的

我不确定我的功能与手工操作有什么不同。我可以使用函数参数查找并打开文件,但在data$参数中使用函数参数似乎会导致错误。为什么会这样?有什么解决方法?

尝试以下方法:

MyFunction <- function(file, columnname) {
    data <- read.csv(file)
    mean(data[[columnname]])
}
MyFunction试试这个:

MyFunction <- function(file, columnname) {
    data <- read.csv(file)
    mean(data[[columnname]])
}
MyFunction试试这个:

MyFunction <- function(file, columnname) {
    data <- read.csv(file)
    mean(data[[columnname]])
}
MyFunction试试这个:

MyFunction <- function(file, columnname) {
    data <- read.csv(file)
    mean(data[[columnname]])
}

MyFunction您可以只使用括号索引,而不使用
$
索引。例如,用类似于
Idx的东西获取列号,我实际上最终使用了这个,尽管这两个答案都非常有用!您可以只使用括号索引,而不使用
$
索引。例如,用类似于
Idx的东西获取列号,我实际上最终使用了这个,尽管这两个答案都非常有用!您可以只使用括号索引,而不使用
$
索引。例如,用类似于
Idx的东西获取列号,我实际上最终使用了这个,尽管这两个答案都非常有用!您可以只使用括号索引,而不使用
$
索引。例如,用类似于
Idx的东西获取列号,我实际上最终使用了这个,尽管这两个答案都非常有用!太棒了,谢谢你!使用read.table或$或两者都有问题吗?$是问题所在。见刚才添加的澄清。太棒了,谢谢!使用read.table或$或两者都有问题吗?$是问题所在。见刚才添加的澄清。太棒了,谢谢!使用read.table或$或两者都有问题吗?$是问题所在。见刚才添加的澄清。太棒了,谢谢!使用read.table或$或两者都有问题吗?$是问题所在。见刚才补充的澄清。
b <- "a"
DF <- data.frame(a = 1, b = 2)
DF$b
## [1] 2
DF[[b]]
## [1] 1