作者celestialgod (天)
看板R_Language
标题[问题] (救回) 如何读入多个CSV档
时间Sun Nov 20 14:53:09 2016
相关作者讯息已经遮蔽
想要请问一下
我尝试使用在单一资料夹内有又不同资料夹
如wd 底下又有x, y, z
x底下有 x1 x2
y有y1 y2
z有z1
我尝试使用两个list.files去读取
setwd("C:/SASMACRO/data")
data.files1 = list.files()
data.files = list.files(path=data.files1,pattern="*.csv")
虽然data.files 可以得到所有个别的csv,分别为x1-z1
似乎都判断为在x底下资料夹的路径也就是
C:/SASMACRO/data/x/y1
这导致y1-z1无法在後续的merge的方式处理
要怎样让他可以判断出对应csv的路径为
C:/SASMACRO/data/x/x1
C:/SASMACRO/data/x/x2
C:/SASMACRO/data/y/y1
C:/SASMACRO/data/y/y2
C:/SASMACRO/data/z/z1
谢谢
另外以上file内档案并非非常有逻辑,所以使用eval可能不是非常适合
--
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/R_Language/M.1461567463.A.D78.html
1F:→ andrew43: try: dir(pattern=".csv$", full.names=T, recursive=T) 04/25 15:44
2F:→ andrew43: pattern是放标准表示式,而你的重点应该是recursive=T 04/25 15:45
3F:→ celestialgod: .要escape,不然有机会出问题,改成"\\.csv$",不确 04/25 16:01
4F:→ celestialgod: 定这里有没有fixed这个参数可以加 04/25 16:01
5F:→ celestialgod: 我平常都直接list.file接grepl. XD 04/25 16:02
6F:→ andrew43: 嗯对,多谢,不然就对应到乱七八糟的东西了。 04/25 16:03
7F:→ ******: 请问escape要写在哪? 查了dir function 没有看到的说 04/25 16:41
8F:→ celestialgod: 直接把a大的那个pattern改成我那个就好 04/25 16:50
9F:→ celestialgod: 在字串里面加escape的意思是regexp里面有一些字元有 04/25 16:52
10F:→ celestialgod: 意义,必须用\去避免使用该意义,R里面的字串,要表 04/25 16:52
11F:→ celestialgod: 示\必须先escape他,所以要打\\ 04/25 16:52
12F:→ celestialgod: 这应该是R没有原生regexp interpreter,直接传到c做 04/25 16:53
13F:→ celestialgod: 的缘故 04/25 16:53
14F:→ andrew43: 在标准表示式里,"."是除了换行的任何一个字元,是 04/25 17:12
15F:→ andrew43: 有特别作用的,所以要跳脱。 04/25 17:13
16F:→ andrew43: 如果没有跳脱,那"Dcsv"或" csv"都会符合,就不是你要的 04/25 17:14
17F:→ andrew43: 结果了。 04/25 17:14
18F:→ ******: 恩恩 谢谢 04/25 17:42
※ 编辑: celestialgod (36.233.51.224), 11/20/2016 14:58:03