使用以下代碼,我想匯入一千個(小)csv 檔案:
library(readr)
ldf <- list() # creates a list
listcsv <- dir(pattern = "*.csv") # creates the list of all the csv files in the directory
for (k in 1:length(listcsv)){
ldf[[k]] <- read_csv2(listcsv[k])
ldf[[k]] <- as.data.frame(ldf[[k]])
}
操作似乎已經成功,因為檔案已全部加載到串列中ldf。無論如何,其中一些似乎顯示出問題。這千個檔案的前兩列應該是chr但只有極少數具有 POSIXct 格式的第二列。我不知道為什么。此列中的值為:
0840-07-11
0840-07-11
0840-07-11
0840-07-11
0840-07-11
0840-07-11
0840-07-11
0840-07-11
而相反,它們應該是:
08400711
08400711
08400711
08400711
08400711
08400711
08400711
08400711
uj5u.com熱心網友回復:
在這里,col_types指定為 "c" 將僅將第一列轉換為character. 如果我們需要強制所有列為 ,請character指定.default(如果我們不知道之前的列數)或復制"c"為"ccc"(等于列數)
library(readr)
df1 <- read_csv(readr_example("mtcars.csv"), col_types = cols(.default = "c"))
> str(df1)
spec_tbl_df [32 × 11] (S3: spec_tbl_df/tbl_df/tbl/data.frame)
$ mpg : chr [1:32] "21" "21" "22.8" "21.4" ...
$ cyl : chr [1:32] "6" "6" "4" "6" ...
$ disp: chr [1:32] "160" "160" "108" "258" ...
$ hp : chr [1:32] "110" "110" "93" "110" ...
$ drat: chr [1:32] "3.9" "3.9" "3.85" "3.08" ...
$ wt : chr [1:32] "2.62" "2.875" "2.32" "3.215" ...
$ qsec: chr [1:32] "16.46" "17.02" "18.61" "19.44" ...
$ vs : chr [1:32] "0" "0" "1" "1" ...
$ am : chr [1:32] "1" "1" "1" "0" ...
$ gear: chr [1:32] "4" "4" "4" "3" ...
$ carb: chr [1:32] "4" "4" "1" "1" ...
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/481838.html
