Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 运行函数时没有输出_R_Csv - Fatal编程技术网

R 运行函数时没有输出

R 运行函数时没有输出,r,csv,R,Csv,对于R和编程来说,我是新手,在本课程的作业中回顾了所有可能的线程,但无法找出问题所在。我知道这个函数可以使用Lappy和更多的工具进行优化,但我想知道为什么这个函数不起作用。我觉得关于这个功能的一些问题稍微激怒了一些用户。老实说,我查看了相关的帖子,我不知道我能为这个特定的bug做些什么 pollutantmean <- function (directory, pollutant, id) { #Create the data frame with the data from

对于R和编程来说,我是新手,在本课程的作业中回顾了所有可能的线程,但无法找出问题所在。我知道这个函数可以使用Lappy和更多的工具进行优化,但我想知道为什么这个函数不起作用。我觉得关于这个功能的一些问题稍微激怒了一些用户。老实说,我查看了相关的帖子,我不知道我能为这个特定的bug做些什么

    pollutantmean <- function (directory, pollutant, id) {
  #Create the data frame with the data from the 332 files

  files <- list.files(getwd())
  df <- data.frame()
  id <- 1:332

  for (i in 1:length(id)) {df <- rbind(df, read.csv(files[i]))

  if (pollutant=="nitrate"){ 

    #Create a subset for nitrate values of df
    df_nitrate <- df[df$ID==id[i], "nitrate"] 

    #Take mean of df_nitrate
    mean (df_nitrate, na.rm = TRUE)

    } else {
    #Create a subset for sulfate values of df
    df_sulfate <- df[df$ID==id[i],"sulfate"] 

   #Take mean of df_sulfate
     mean(df_sulfate, na.rm = TRUE)
     }
  }
} 
操作系统是Windows10


欢迎提出任何建议或意见。提前感谢。

您的
for
循环将环绕您的if
块。R函数在循环中不会返回值(除非您使用
return
函数,这不是您想要在这里执行的操作)


PollutanMean究竟是什么问题?错误消息是什么?在
df[df$ID==ID[i],“norate”]
处,由于您正在加载指定
ID
的CSV文件,按ID进行过滤似乎是多余的。我认为在加载所有CSV文件后,您需要计算for循环外的平均值。@MaxPD没有消息,就是这样。@KotaMori id用于特定文件。每个文件都有一个硝酸盐和硫酸盐列。但是,当我按照您的建议将循环限制为rbind时,它只处理第一个文件。因为您有
df$ID==ID[I]
,所以它只返回
I
的平均值。如果您想计算多个文件的平均值,请删除这个partIn事实,这是我最初使用的,但它只返回第一个文件的平均值。但现在至少我知道了为什么没有输出。谢谢你,亚当。
pollutantmean(getwd(), "nitrate", 23)
> traceback()
No traceback available 
> debug(pollutantmean)
> 
  pollutantmean <- function (directory, pollutant, id) {
  #Create the data frame with the data from the 332 files

  files <- list.files(getwd())
  df <- data.frame()
  id <- 1:332

  for (i in 1:length(id)) {df <- rbind(df, read.csv(files[i]))
  # close for loop HERE
  }

  if (pollutant=="nitrate"){ 

    #Create a subset for nitrate values of df
    df_nitrate <- df[df$ID==id[i], "nitrate"] 

    #Take mean of df_nitrate
    mean (df_nitrate, na.rm = TRUE)

    } else {
    #Create a subset for sulfate values of df
    df_sulfate <- df[df$ID==id[i],"sulfate"] 

   #Take mean of df_sulfate
     mean(df_sulfate, na.rm = TRUE)
     }
  # not HERE
  #}
}