【问题标题】:using path in a function in R在R中的函数中使用路径
【发布时间】:2018-06-17 00:47:32
【问题描述】:

有这个。看起来很简单,但是在请求结果时会抛出错误。

directory <- setwd("C:/Users/Spin/Documents/R/pollutant/specdata")
pollutantmean <- function(directory, pollutant, id = 1:332){
file.list <- list.files(path = directory, pattern = ".csv", full.names = TRUE)
cum_vector = numeric()

 for(i in id){
   data <- read.csv(file.list(i))
   cum_vector < - c(cum_vector, data[[pollutant]])
 }

 mean(cum_vector, na.rm = TRUE)
}

pollutantmean(1:10)

list.files 中的错误(路径 = 目录,模式 = ".csv",完整名称 = TRUE) : 无效的“路径”参数

也使用了file.path

【问题讨论】:

    标签: r function path directory


    【解决方案1】:

    请注意,此问题是 Coursera 上约翰霍普金斯大学 R 编程 课程的家庭作业。我将解释代码失败的原因,但不会只给你一个完整的答案,因为这会违反 Coursera 荣誉守则。

    此代码失败,因为pollutantmean(1:10) 将数字向量作为参数directory 传递。由于没有目录1:10,因此代码失败并出现无效路径错误。

    pollutantmean() 函数有三个参数,应该这样调用,以便计算前 10 个污染传感器上sulfate 污染物的平均值:

    pollutantmean("specdata","sulfate",1:10) 
    

    此外,该函数不是对目录进行硬编码,而是应该将第一个参数中传递的目录解析为所需的路径,以访问应该存储在当前 R 工作目录的 specdata 子目录中的污染文件.

    cum_vector 向量的赋值语句中也有一个错误,我将留给您自行更正。

    【讨论】:

    • 伦,谢谢你的帮助。在观看了数小时的各种视频,完成了所有的课程作业后,我被困在了一些看似简单的事情上,我想我因为森林而错过了我面前的树。我很欣赏你的方法。谢谢。
    • @RJP - 看看Resources for R Programming,尤其是Forms of the Extract Operator,它们都与编程作业高度相关。
    猜你喜欢
    • 2016-08-12
    • 1970-01-01
    • 2015-09-06
    • 2021-12-13
    • 2017-03-04
    • 2020-07-04
    • 2015-06-23
    • 2012-09-20
    • 2013-04-06
    相关资源
    最近更新 更多