在 extracting/reading 文件中使用逗号
Use of commas while extracting/reading files in R
我应该编写一个函数,根据文件的变量值与阈值的比较来提取信息,我正在按照指南寻求帮助。
我写的代码如下:
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 <- read[complete.cases(read)]
写成 data <- read[complete.cases(read),]
使程序 运行 成功。
谁能解释一下使用“,”的原因以及它是如何制作程序的运行?
read
是一个包含行和列的 data.frame。 data.frame 中的项目可以用方括号引用。例如,第 2 行第 3 列可以作为 read[2, 3]
访问,其中第一个点用于行索引,第二个点用于列索引。您对 complete.cases
所做的是获取完整行的逻辑向量(没有缺失值)。您想要将该向量插入括号 [here,] 中的行点。如果没有逗号,您将其视为矢量,但您实际上想要索引 2D data.frame.
我应该编写一个函数,根据文件的变量值与阈值的比较来提取信息,我正在按照指南寻求帮助。
我写的代码如下:
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 <- read[complete.cases(read)]
写成 data <- read[complete.cases(read),]
使程序 运行 成功。
谁能解释一下使用“,”的原因以及它是如何制作程序的运行?
read
是一个包含行和列的 data.frame。 data.frame 中的项目可以用方括号引用。例如,第 2 行第 3 列可以作为 read[2, 3]
访问,其中第一个点用于行索引,第二个点用于列索引。您对 complete.cases
所做的是获取完整行的逻辑向量(没有缺失值)。您想要将该向量插入括号 [here,] 中的行点。如果没有逗号,您将其视为矢量,但您实际上想要索引 2D data.frame.