gpt4 book ai didi

r - 选择的数据框未定义列出错

转载 作者:行者123 更新时间:2023-12-04 10:49:16 24 4
gpt4 key购买 nike

我一直在做一项作业,我必须从目录“specdata”中读取一些 csv 文件。这些文件非常相似,有 332 个文件名为 001.csv - 332.csv。如果重要的话,它们具有一致的列和标题。

我相信我已经接近但我被上述错误消息绊倒

" Error in [.data.frame(data1, good) : undefined columns selected"



我原以为数据框会加载 id 参数中文件子集指定的所有数据。
pollutantmean <- function(directory, pollutant, id = 1:332) {

files <- list.files(directory)

subsetFiles <- files[id]

for (i in subsetFiles) {

filepaths <- paste(directory,"/",i, sep='')

data1 <- read.csv(filepaths)
}

data1

good <- complete.cases(data1)

data2 <- data1[good]

data2
}

# test it out and ignore middle parameter for now
pollutantmean("specdata", "pass", 1:3)

最佳答案

你的意思吗?

data2 <- data1[good,]


data1[good]

您以错误的方式选择列(使用完整行的逻辑向量)。

考虑参数 pollutant未使用;它是您要提取的列名吗?如果是这样,它应该是这样的
data2 <- data1[good, pollutant]

此外考虑到你必须 rbind data.frame for里面的s循环,否则你只会得到最后一个 data.frame(它的已完成.cases)

最后但并非最不重要的是,我更喜欢生成文件名,例如
id <- 1:322
paste0( directory, "/", gsub(" ", "0", sprintf("%3d",id)), ".csv")
?sprintf的一小块修改

字符串 fmt (在我们的例子中 "%3d" )包含普通字符,它们被传递到输出字符串,还有 转换规范对通过 ... 提供的参数进行操作.允许的转换规范以 % 开头并以集合中的一个字母结尾 aAdifeEgGosxX% .这些字母表示以下类型:
  • d : 整数

  • 例如一个更一般的例子
        sprintf("I am %10d years old", 25)
    [1] "I am 25 years old"
    ^^^^^^^^^^
    | |
    1 10

    关于r - 选择的数据框未定义列出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23666611/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com