R:从以逗号分隔的字符串中提取数字

时间:2013-06-27 08:57:22

标签: r substring

我有一个数据框,例如,

X1 12:37  
X2  3,0,0

我想将3 0和0分别提取到新的数据框中。

我想怎么办呢?

提前致谢...

3 个答案:

答案 0 :(得分:2)

你可以先阅读你的行,然后拆分它们,从行名中提取数字。

ll <- readLines(textConnection('X1 12:37  
X2  3,0,0'))
res <- strsplit(ll,' ')
[[1]]
[1] "X1"    "12:37" ""     

[[2]]
[1] "X2"    ""      "3,0,0"

或使用read.table

res1 <- read.table(text='X1 12:37  
X2  3,0,0')
  V1    V2
1 X1 12:37
2 X2 3,0,0

例如,您可以访问包含逗号的元素,并再次应用strsplit,如其他解决方案所述。

unlist(res)[grep(',',unlist(res))]
 "3,0,0"

答案 1 :(得分:1)

您可以使用strsplit获取数字:

strsplit("3,0,0", ",")

目前还不完全清楚您的数据是实际存在于数据框中,还是仅仅是一个向量(R新手倾向于将包含数据的所有内容称为“数据框”),但希望您能看到如何应用功能。

答案 2 :(得分:1)

使用@ agstudy的“res1”:

res1 <- read.table(
  text='X1 12:37
  X2  3,0,0')
temp <- read.table(text = as.character(res1$V2), 
                   sep = ",", header = FALSE, fill = TRUE)
temp
#      V1 V2 V3
# 1 12:37 NA NA
# 2     3  0  0
temp[complete.cases(temp), ]
#   V1 V2 V3
# 2  3  0  0