我有一个大型数据集,其中的变量由符号分隔|**|
。我尝试使用sep="|"
,但是当字符串变量之一包含|
. 如何使 R 使用复合分隔符读取数据?
问问题
156 次
1 回答
4
(坦率地说,我认为使用 sed 更容易做到这一点。这在 R 中可能不是很快)
Lines <- readLines(filename)
sLines <- strsplit(Lines, "|**|", fixed=TRUE) # Thanks, Richie.
dat <- read.table(text= sapply(sLines, paste, collapse=",") ,sep=",")
这是对简单数据字符串的测试:
Lines <- "a|**|b|**|c\nd|**|e|**|f"
sLines <- strsplit(Lines, "\\|\\*\\*\\|")
dat <- read.table(text= sapply(sLines, paste, collapse=",") ,sep=",")
dat
#-----------
V1 V2 V3
1 a b c
2 d e f
strsplit
使用正则表达式模式,所以你需要双重逃避“特价”。如果您colClasses
在 read.table 调用中使用会更快。看?read.table
于 2013-09-30T06:58:10.393 回答