如何使R读取的数据以“分隔”|**|&引用;

如何使R读取的数据以“分隔”|**|&引用;,r,read.table,R,Read.table,我有一个很大的数据集,变量之间用**符号分隔。我曾尝试使用sep=“|”,但当其中一个字符串变量包含|时,这不起作用。如何使R使用复合分隔符读取数据?(坦白说,我认为使用sed更容易做到这一点。在R中这可能不是很快) 行(坦白地说,我认为使用sed更容易做到这一点。在R中这可能不是很快) 行您是说您的数据中有包含|的无引号字符串吗?请给出一个输入的病态示例。您是说您的数据中有包含|的无引号字符串吗?请给出一个输入的病态示例。通过传递fixed=TRUE,您可以将strsplit拆分为固定字符串而

我有一个很大的数据集,变量之间用
**
符号分隔。我曾尝试使用
sep=“|”
,但当其中一个字符串变量包含
|
时,这不起作用。如何使R使用复合分隔符读取数据?

(坦白说,我认为使用sed更容易做到这一点。在R中这可能不是很快)

行(坦白地说,我认为使用sed更容易做到这一点。在R中这可能不是很快)


行您是说您的数据中有包含|的无引号字符串吗?请给出一个输入的病态示例。您是说您的数据中有包含|的无引号字符串吗?请给出一个输入的病态示例。通过传递
fixed=TRUE
,您可以将
strsplit
拆分为固定字符串而不是正则表达式。我猜您的解决方案比
gsub(“|**,”,data)更快
之后是对输出的
strsplit
readLines
调用?我不知道。您需要将fixed参数设置为TRUE才能成功。通过传递
fixed=TRUE
,可以将
strsplit
拆分为固定字符串,而不是正则表达式。我猜您的解决方案比
gsub(“|**,”,data)更快
之后是对输出的
strsplit
readLines
调用?我不知道。您需要将固定参数设置为TRUE才能使其成功。
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