簡體   English   中英

反復運行R腳本

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM