r - 在 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
是获取完整行的逻辑向量(没有缺失值)。您想将该向量插入括号 [此处,] 中的行点。如果没有逗号,您会将其视为矢量,但您实际上想要索引 2D data.frame。
推荐阅读
- graph - 拓扑排序解决方案验证
- java - 在 Eclipse IDE 中使用 org.apache.commons.collections 的 ClassNotFoundException 问题
- javascript - TypeScript HTML 按钮“文件不包含在任何 tsconfig.json 中” Intellij
- google-analytics - 谷歌分析中每个用户 ID 的页面访问和持续时间
- angular - 发生未处理的异常:ENOENT: 没有这样的文件或目录,lstat 'E\CoffeShop\node_modules' 有关详细信息,请参阅“C:\aangular-errors.log”
- javascript - 如果在同一日期,则隐藏元素,并且仅使用 ngIf 显示一次
- powershell - 如何让 Powershell 的 Import-Csv 正确导入空格
- class - SwiftUi 初始化一个类中的主结构
- java - 具有复杂 HashMap 结构的 GSON 到 Json
- java - 如何使用@Async在spring boot中为一种方法创建多个线程池