我正在创建一个脚本,需要读取工作目录中的所有 csv 文件,然后从“item_number”和“sale_price”列中提取所有值,并将这些值全部放入一个数据帧中。我目前正在使用下面的内容来读取所有 csv。
temp = list.files(pattern="*.csv")
for (i in 1:length(temp)) assign(temp[i], read.csv(temp[i]))
我遇到的问题是,每次运行此代码时,我在 R 中的数据都会得到不同的名称(因为工作目录不断更新为不同的 csv)。那么,如何从已读入的所有 csv 中提取上述变量中的数据,而无需专门按名称调用它们呢?
请注意,这是在 R 中的全新环境中完成的,因此如果有任何方法可以读取所有对象并提取这些列,那么我认为这会起作用吗?
提前致谢, 丹
最佳答案
我建议不要使用分配
。这将创建一个包含两列和 csv 中的所有数据的数据框。我猜测了初始化数据框的数据类型。
temp <- list.files(pattern="*.csv")
df <- data.frame(item_number=numeric(0), sale_price=numeric(0))
for (i in 1:length(temp)) {
tmp <- read.csv(temp[i])
df <- rbind(df, tmp[, c("item_number", "sale_price")]
}
关于r - 从 R 工作目录中的所有 csv 中提取特定列(按名称),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49556578/