我是R的新手,我进行了一个实验后创建了20个.csv文件。文件名遵循“ p01_results.csv”格式,我成功将它们全部导入到我的全局环境中,每个文件都作为具有相同名称的数据集。现在,我正在尝试找到一种有效的方法来删除4行并添加2列。我知道如何对每个数据集分别进行处理,如下所示,但是我不知道如何通过某种循环进行处理。
temp = list.files(pattern="*.csv")
list2env( lapply(setNames(temp, make.names(gsub("*.csv$", "", temp))),
read.csv), envir = .GlobalEnv)
p01_results <- p01_results[-c(1 , 20 , 39 , 58) , ]
p01_results$p <- rep(1, 72)
p01_results$s <- c(rep(1,18), rep(2,18), rep(3,18), rep(4,18))
答案 0 :(得分:0)
我宁愿遵循list
的方法,然后使用lapply()
。像这样:
results = vector("list",20)
for (i in 1:20){
if (i<10) { file = paste0("p0",i,"_results.csv")} else {file = paste0("p",i,"_results.csv")
results[[i]] = read.csv(file)
}
results = lapply(results,function(x){x <- x[-c(1 , 20 , 39 , 58) , ]
x$p <- rep(1, 72)
x$s <- c(rep(1,18), rep(2,18), rep(3,18), rep(4,18))
})