[英]Run an R script iteratively
我有70個CSV文件,它們具有與我想要執行相同處理的相同列。 基本上,我要導入,清理,寫入文件並刪除所有變量,然后對下一個重復。 因為每個是0.5GB。
在不以有效方式迭代加載程序包的情況下該怎么辦?
library(tidyverse)
setwd("~/R/R-3.5.1/bin/i386")
df <- read.csv(file.choose(), header = TRUE, sep = ",")
inds <- which(df$pc_no == "DELL")
df[inds - 1, c("event_rep", "loc_id")] <- df[inds, c("pc_no", "cust_id")]
df1 <- df[-inds, ]
write.csv(df1, "df1.csv")
rm(list=ls())
為此,我想我將使用這段代碼,但不知道在哪里正確使用它。 IE如何實現上述代碼?
list.files(pattern="^events.*?\\.csv", full.names=TRUE, recursive=FALSE)
lapply(files, function(x) {
files <- function(df1)
})
根據上面的評論,在將文件分配給對象(您已定義為文件)后,只需使用lapply遍歷每個文件。
library(tidyverse)
setwd("~/R/R-3.5.1/bin/i386")
files <- list.files(pattern="^events.*?\\.csv", full.names=TRUE, recursive=FALSE)
lapply(files, function(x) {
df <- read.csv(x, header = TRUE, sep = ",")
inds <- which(df$pc_no == "DELL")
df[inds - 1, c("event_rep", "loc_id")] <- df[inds, c("pc_no", "cust_id")]
df1 <- df[-inds, ]
write.csv(df1, paste0('cleaned_', x), row.names = FALSE)
})
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.