我有一个大型数据集,这些变量由|**|
符号分隔。我尝试使用sep="|"
,但是当包含|
的字符串变量之一时,这不起作用。如何使用复合分隔符使R读取数据?
答案 0 :(得分: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
使用正则表达式模式,因此您需要双倍地逃避“特殊”。如果在read.table调用中使用colClasses
会更快。见?read.table