R 3.60,Windows 10
我正在读一堆.csv文件(001.csv ... 332.csv),并将内容读入数据框。我在ldply中使用read_csv完成此操作。它非常有效,除了在某些文件(在默认值1000行之后才无法猜测正确的列类型)上。我可以增加行数,但是我认为更有效的方法是显式定义col_types。
我已经尝试过这样做,但是我找不到正确的编码方式。
这就是我本来的东西。除了文件不能猜测正确的原子类的文件外,它都是有效的,因为直到1000行之后,它都是NA值:
dat_csv = ldply(myfiles, read_csv)
这是到目前为止我尝试过的内容:
dat_csv = ldply(myfiles, read_csv(myfiles, col_names = TRUE, col_types =
cols(
Date = col_date(format = ""),
sulfate = col_double(),
nitrate = col_double(),
ID = col_double()
)))
我收到此错误:
fs [[i]](x,...)中的错误:尝试应用无功能
感谢您的帮助!
答案 0 :(得分:2)
我无法对其进行测试,但我认为您的通话应如下所示:
dat_csv = ldply(
myfiles,
read_csv,
col_names = TRUE,
col_types = cols(
Date = col_date(format = ""),
sulfate = col_double(),
nitrate = col_double(),
ID = col_double()
)
)
您也可以尝试:
dat_csv = ldply(
myfiles,
read_csv,
col_names = TRUE,
col_types = "Dddd"
)
您只需在对read_csv()
的调用中附加ldply
函数的参数。该文档指出:
ldply(.data,.fun = NULL,...,.progress =“ none”,.inform = FALSE,
.parallel = FALSE,.paropts = NULL,.id = NA)
其中
...其他参数传递给.fun