[英]Reading multiple csv files
我需要讀取多個csv文件,並為每個文件打印前六個值。 我嘗試了這段代碼,但是顯然是錯誤的,因為在循環的每次迭代中di的值都會被覆蓋。 如何讀取多個文件?
library(xlsx)
for(i in 1:7){
di = read.csv(file.choose(),header=T)
print(di)
}
d = list(d1,d2,d3,d4,d5,d6,d7)
lapply(d,head)
如果您只想打印6行或存儲它們,以及是否要保留其余的csv文件,我會感到有些困惑。 假設您要打印的是6行,然后假設您知道文件名,則可以使用
print(read.csv(filename, nlines = 6))
並為每個文件重復。 或者,如果您要保存每個文件,則可以執行
f1 <- read.csv(filename, nlines = 6)
對每個重復上述步驟,並使用print(head)
。
或者使用您的方法,但解決覆蓋問題:
library(xlsx)
for(i in 1:7)
assign(paste0("d",i), read.csv(file.choose(),header=T))
lapply(list(d1,d2,d3,d4,d5,d6,d7),head)
使用assign
動態分配名稱,以便每個名稱都是唯一的,並且不會相互覆蓋,我想這就是您的目標。 雖然這不是很“優雅”,但適合您選擇的方法
如果要將數據幀保留在列表中,而不是將每個數據幀分配給一個新對象。
fs <- dir(pattern = ".csv")
d <- list()
for (i in seq_along(fs)) {
d[[i]] <- read.csv(fs[[1]])
print(head(d[[i]]))
}
fs <- dir(pattern = ".csv")
d <- lapply(fs, read.csv)
lapply(d, head)
使用選項1,您需要初始化一個空列表以填充並使用雙括號[[
表示法。 使用選項2,您不需要初始化一個空列表。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.