在 R 中提取/读取文件时使用逗号

Posted

技术标签:

【中文标题】在 R 中提取/读取文件时使用逗号【英文标题】:Use of commas while extracting/reading files in R 【发布时间】:2020-12-11 17:16:05 【问题描述】:

我应该编写一个函数,该函数根据文件的变量值与阈值的比较来提取信息,并且我正在按照指南寻求帮助。

我写的代码如下:

    corr1 = function(directory, threshold, id = 1:332) 
        path <- list.files(path = directory, pattern = ".csv", full.names = TRUE)
        total <- numeric()
  

       for(i in id) 
    if(i) 
  read <- read.csv(path[i])
    
    
    data <- read[complete.cases(read)]
    if(nrow(data) > threshold) 
      total <- c(total, cor(data["sulfate"], data["nitrate"]))
    
  
  total

运行时出现如下错误:

Error in `[.data.frame`(read, complete.cases(read)) : 
  undefined columns selected

但是通过查阅指南,我发现了一个区别,如下所示: 而不是data &lt;- read[complete.cases(read)] 写成data &lt;- read[complete.cases(read),]

这使得程序运行成功。

谁能解释一下使用“,”的原因以及它是如何让程序运行的?

【问题讨论】:

【参考方案1】:

read 是一个带有行和列的 data.frame。 data.frame 中的项目可以用方括号引用。例如,第 2 行第 3 列可以作为read[2, 3] 访问,其中第一个位置是行索引,第二个位置是列索引。您对complete.cases 所做的是获取完整行的逻辑向量(没有缺失值)。您想将该向量插入括号 [此处,] 中的行点。如果没有逗号,您会将其视为矢量,但您实际上想要索引 2D data.frame。

【讨论】:

以上是关于在 R 中提取/读取文件时使用逗号的主要内容,如果未能解决你的问题,请参考以下文章

试图读取存储在csv文件中的R中的推文

python怎么读取csv文件

Matlab读取csv文件csvread函数的使用

C读取以逗号分隔的数字文件

如何提取多个 zip 文件并在 R 中读取这些 csv? [复制]

R语言文件读取