gpt4 book ai didi

R - 在循环中创建多个数据集的子集

转载 作者:行者123 更新时间:2023-12-01 12:53:18 25 4
gpt4 key购买 nike

我有大量相当繁重的数据集。我想从每个文件中提取一个子集并将其保存到不同的 csv 文件中(每个数据集一个)。这些是我想为文件夹中的所有文件循环的命令:

df <-read.csv("1985.csv",header=FALSE,stringsAsFactors=TRUE,sep="\t")
df_short <- df[df$V6=="OPP", ]
write.csv(df_short, file = "OPP_1985.csv",row.names=FALSE)
rm(df)
rm(df_short)

这可能是一个非常菜鸟的问题,但我正在努力理解如何去做,所以我将不胜感激!

编辑:

按照@SimonShine 的建议,我运行了这段代码,它成功了!

最佳答案

您没有指定您是要尝试将子集收集到一个数据集中,还是要尝试为每个子集制作一个文件。您引用的 OPP_1985 似乎超出了您编写的代码的范围。您是要引用 df_short 吗?

您可以首先将您想对一个数据文件执行的操作抽象为一个函数,例如:

extract_and_save_from_dataset <- function(csvfile) {
df <- read.csv(csvfile, header=F, stringsAsFactors=T, sep="\t")
df_short <- df[df$V6 == "OPP",]
csvfile_short <- gsub(".csv", "_short.csv", csvfile)
write.csv(df_short, file=csvfile_short, row_names=F)
}

假设您有一组数据集文件名,您可以多次应用此函数:

# csvfiles <- c("OPP_1985.csv", "OPP_1986.csv", ...)
csvfiles <- list.files("/path/to/my/csvfiles")
for (csvfile in csvfiles) {
extract_and_save_from_dataset(csvfile)
}

关于R - 在循环中创建多个数据集的子集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35536500/

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