※ 引述《peiwinds (Macchiato Caramel)》之铭言:
: [问题类型]:
:
: 程式咨询(我想用R 做某件事情,但是我不知道要怎么用R 写出来)
:
: [软件熟悉度]:
: 语法不太熟
: [问题叙述]:
: 最近因为要处理的资料很多,想一次读入多个csv档 (数十个到数百个都有)
: 并且将这些档案已 data frame的方式 rbind起来
: 下面第一个是我在 stackoverflow看人家分享拿来用的
: 第二个是我自己后来写的
: [程式范例]:
: 1.
: temp <- do.call(rbind, lapply(list.files(path=".", pattern="*.csv"),
: read.table, header=TRUE, sep=","))
: # 方法一的问题在于他的path我无法指定我要的目录 例如 D:/test 目录
: # 该目录中明明有csv档,但是却会出现错误讯息如下
: # Error in file(file, "rt") : cannot open the connection
list.files(path=".") 就是取得工作目录的档案名,
所以你需要切换工作目录,或是修正 path=""。
你看看 list.files(path="D:/test") 看看就明白了。
: # 当然如果我把资料都丢在环境目录下,当然是都读得到也不会有问题
: # 因此我便写了第2种
: 2.
: path <- "D:/test/"
: files <- list.files(path=path, pattern="*.csv")
: bindtemp <- data.frame()
: temp <- data.frame()
: for (file in files) {
: bindtemp <- read.csv(paste(path,file,sep=""))
: temp <- rbind(temp,bindtemp)
: }
: # 想问的是第一种的写法为什么不能指定目录
: # 第二个只是丢上来跟大家分享,看有什么什么改进的空间XD
第二种其实没什么问题,功能是一样的,只是看起来没有比较神而已啦。
: [关键字]:
: 读入多个外部档案