R 创建从一组文件中提取用户指定列的函数

R 创建从一组文件中提取用户指定列的函数,r,function,csv,R,Function,Csv,我有一组csv文件。它们都有相同的结构。我想创建一个从所有文件中提取特定列的函数。查找该列中所有值的平均值并将其存储在向量中。列名应由用户传递 我编写了以下程序。不知何故,它无法识别包含列名称的“污染物” pollutantmean<-function(pollutant) { file_names<-dir("C:/Users/Keval/Desktop/Project R/R_courseera_programming_exercise/specdata",patter

我有一组csv文件。它们都有相同的结构。我想创建一个从所有文件中提取特定列的函数。查找该列中所有值的平均值并将其存储在向量中。列名应由用户传递

我编写了以下程序。不知何故,它无法识别包含列名称的“污染物”

   pollutantmean<-function(pollutant)
{
  file_names<-dir("C:/Users/Keval/Desktop/Project R/R_courseera_programming_exercise/specdata",pattern= glob2rx("*.csv"))

  for(file_name in file_names)
  {
    file_reader<-read.csv(file_name)
    pollutant_data<-file_reader$pollutant
  }
  pollutant_data
  pollutant
}`enter code here`

pollutantmean使用字符串,例如用

pollutantmean(pollutant = "mercury")
并使用
[
(接受字符串)代替
$
,后者不:

# replace the line
pollutant_data <- file_reader$pollutant
# with this:
pollutant_data <- file_reader[, pollutant]

谢谢。你提供的解决方案非常有效。它解决了问题。
pollutantmean<-function(pollutant) {
    file_names <- list.files("C:/Users/Keval/Desktop/ProjectR/R_courseera_programming_exercise/specdata",
      pattern= glob2rx("*.csv"))

  # initialize mean vector at correct length
  my_means = numeric(length(file_names)
  # make the loop indexed by number
  for(i in seq_along(file_names)) {
    file_reader <- read.csv(file_names[i])
    pollutant_data <- file_reader[, pollutant]
    # using the number index
    my_means[i] = mean(pollutant_data)
  }
  return(my_means)
}