如何通过R中的许多对象

时间:2019-07-02 14:43:15

标签: r loops

我是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))

1 个答案:

答案 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))
})