使用stringr来分割矢量,意外的结果长度

时间:2013-05-02 16:13:02

标签: r stringr

简单的事情我正在使用stringr来操纵角色向量。我有一个以下类型的数据框

library(stringr)
d1 <- data.frame(x = str_c(rpois(10, lambda=5), 
                           rpois(10, lambda=10),
                           sep = "_"))

我希望下划线之后的所有内容都是一个单独的变量。使用str_sub会导致长度为20的向量,我无法解释原因。

d1$y <- str_sub(d1$x, str_locate(d1$x, fixed("_"))+1)
  

$<-.data.frame中的错误(*tmp*,“y”,值= c(“_ 12”,“_ 7”,“_ 15”,:     替换有20行,数据有10行

有人可以指导我如何以正确的方式撰写str_sub来电吗?

1 个答案:

答案 0 :(得分:4)

这就是你想要做的事情(检查str_locate的输出,看看它为什么不适合你,同时注意str_sub回收参数):

d1$y = str_sub(d1$x, str_locate(d1$x, fixed("_"))[,1] + 1, -1)

或在基地R:

d1$y = sub("^[^_]*_", "", d1$x)