忽略列表的读表中的特定字符

时间:2015-10-11 20:48:21

标签: r read.table

我有以下列表:

> str1<-'cor [1] 0.8832846 0.8880517 0.8881286 0.8845148 0.8832846 0.8880517 0.8818238 0.8767492 0.8876672 0.8822851 0.8854375 0.8850531 0.8835153
[14] 0.8832846 0.8908965 0.8803629'
I use the following command:
> df1 <- read.table(text=scan(text=str1, what='', quiet=TRUE), header=TRUE)

但是,[1][14]包含在df1中。我可以在df1更改哪些内容以忽略所有[x](其中x是数字?

1 个答案:

答案 0 :(得分:2)

我们可以删除包含gsubscanread.table内部数字的方括号,如OP的帖子。

read.table(text=scan(text=gsub('\\[\\d+\\]', '', str1),
                             what='', quiet=TRUE), header=TRUE)
#      cor
#1  0.8832846
#2  0.8880517
#3  0.8881286
#4  0.8845148
#5  0.8832846
#6  0.8880517
#7  0.8818238
#8  0.8767492
#9  0.8876672
#10 0.8822851
#11 0.8854375
#12 0.8850531
#13 0.8835153
#14 0.8832846
#15 0.8908965
#16 0.8803629

或者不使用scan作为@Richard Scriven提到的

read.table(text=gsub('\\s+(\\[\\d+\\]\\s+)?', '\n', str1), header=TRUE)