gpt4 book ai didi

读取路径未知的.csv文件——R

转载 作者:行者123 更新时间:2023-12-04 11:48:11 25 4
gpt4 key购买 nike

我知道这可能是一个非常愚蠢的问题,但我已经花了好几个小时研究这个问题

想要读取我没有完整路径 (*/*data.csv) 的 .csv 文件。我知道下面会获取当前目录的路径,但不知道如何适应

Marks <- read.csv(dir(path = '.', full.names=T, pattern='^data.*\\.csv'))

这个也试过了,但是不行

Marks <- read.csv(file = "*/*/data.csv", sep = ",", header=FALSE))

我无法确定具体路径,因为这将在具有不同路径的不同机器上使用,但我确定主目录的子文件夹,因为它们是 bash 脚本的结果

我打算从定义工作区的 unix 中调用它

我的数据结构是

lecture01/test/data.csv
lecture02/test/data.csv
lecture03/test/data.csv

最佳答案

你的评论——虽然目前不是你的问题本身——表明你希望在包含一些子目录(lecture01、lecture02 等)的工作目录中运行你的代码,每个子目录都包含一个子目录“标记”依次包含一个 data.csv 文件。如果是这样,并且您的目标是从每个子目录中读取 csv,那么您有几个选项取决于剩余的详细信息。

案例 1:直接指定顶级目录名称,如果您知道所有这些名称并且它们可能是特殊的:

dirs <- c("lecture01", "lecture02", "some_other_dir")
paths <- file.path(dirs, "marks/data.csv")

案例 2:构建顶级目录名称,例如如果它们都以“lecture”开头,后跟一个两位数,并且您能够(或特别希望)指定一个数字范围,例如01 到 15:

dirs <- sprintf("lecture%02s", 1:15)
paths <- file.path(dirs, "marks/data.csv")

案例 3:通过匹配模式确定顶级目录名称,例如如果您想从每个以字符串“lecture”开头的目录中读取数据:

matched.names <- list.files(".", pattern="^lecture")
dirs <- matched.names[file.info(matched.names)$isdir]
paths <- file.path(dirs, "marks/data.csv")

一旦你有了路径向量,我可能会使用 lapply 将数据读入列表以进行进一步处理,并用基本目录名称命名每个:

csv.data <- lapply(paths, read.csv)
names(csv.data) <- dirs

或者,如果您对每个单独的 CSV 所做的任何处理只是为了它的副作用,例如修改数据和写出新版本,特别是如果您不希望所有这些都在内存中同时,然后使用一个循环。

如果这个答案没有切中要害,即使没有,如果您能相应地澄清问题,那就太好了。

关于读取路径未知的.csv文件——R,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15100631/

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