2015-12-31 37 views
0

相應的變量多個文件,有沒有說什麼樣的一種方式:在R.負載作爲R

for (i in 1:10){ 
    ga${i} <- read.table(file="ene.${i}.dat",header=T, sep = ",") 
} 

我使用許多其他結構試過,但沒有適合的要求。

謝謝。

回答

2

我們可以先提取文件名。

ga <- lapply(list.files(path = ".", pattern = "\\.dat"), read.csv) 

或迴路:

lf <- list.files(path = ".", pattern = "\\.dat") 
ga <- structure(vector("list", length(lf)), 
       names = gsub("\\.dat", "", lf)) 
for (i in seq_along(ga)) 
    ga[i] <- read.csv(lf[i]) 

要分配數據到不同的變量:

lf <- list.files(path = ".", pattern = "\\.dat") 
fn <- gsub("\\.dat", "", lf) 
for (i in seq_along(lf)) 
    assign(fn[i], read.csv(lf[i])) 
1

您可以使用一個空的列表,然後粘貼功能做這樣的事情:

ga <- list() 
for (i in 1:10) { 
    ga[[i]] <- read.table(file = paste('ene.', i, '.dat', sep = ''), header = TRUE, sep = ',') 
} 

然後,你將有數據幀的列表。您可以索引爲ga [[1]],ga [[2]]等來訪問它們。

+1

但因爲''sep''是''''爲什麼不使用' 'read.csv(paste0('ene。',i,'。dat'),header = T)'' – nathanesau

+0

是的,你可以。我正在展示一個帶有選項的通用版本來幫助理解不同的元素。你的代碼更加緊湊。 – Gopala