मेरे पास एक कोड है

for (i in 1:length(datasets)) assign(datasets[i], read.csv(paste0(file_dir,datasets[i]),stringsAsFactors = FALSE, header = TRUE))

मैं इसे lapply के साथ फिर से लिखना चाहता हूं। मैं इसे कैसे करूं?

1
Stataq 3 पद 2020, 19:06

2 जवाब

सबसे बढ़िया उत्तर

कोड

datasetList <- lapply(datasets, function(datasetname) {
  read.csv(paste0(file_dir,datasetname),stringsAsFactors = FALSE, header = TRUE)
}

आपको डेटासेट की एक सूची देगा। आप i-वें डेटासेट को datasetList[[i]] पर कॉल करके एक्सेस कर सकते हैं

यदि आप डेटासेट को उनके नाम से एक्सेस करना चाहते हैं, तो बस सूची को नाम दें

datasetList <- setNames(datasetList,datasets)

और आप datasetList$datasetXXX या datasetList[[datasetXXX]] के माध्यम से "datasetXXX" नामक डेटासेट तक पहुंच सकते हैं

2
Jonas 3 पद 2020, 20:33

हम tidyverse विधियों का उपयोग कर सकते हैं

library(dplyr)
library(readr)
library(readr)
datasetList <- map(datasets, ~ read_csv(file.path(file_dir, .x)))
names(datasetList) <- datasets
1
akrun 4 पद 2020, 00:36