忽略列表读取 table 中的特定字符
Ignoring specific characters in read table of list
我有以下列表:
> 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 是一个数字?
我们可以删除方括号,包括 gsub
、scan
和 read.table
中的数字,就像在 OP 的 post.
中一样
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)
我有以下列表:
> 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 是一个数字?
我们可以删除方括号,包括 gsub
、scan
和 read.table
中的数字,就像在 OP 的 post.
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)