【发布时间】:2011-02-17 17:00:54
【问题描述】:
我知道我以前遇到过这个问题,但我现在有点精神障碍。由于在 SO 上找不到,所以我会在这里发布,以便下次找到。
我有一个数据框,其中包含一个表示 ID 标签的字段。这个标签有两部分,一个字母前缀和一个数字后缀。我想将其拆分并创建两个包含这些值的新字段。
structure(list(lab = c("N00", "N01", "N02", "B00", "B01", "B02",
"Z21", "BA01", "NA03")), .Names = "lab", row.names = c(NA, -9L
), class = "data.frame")
df$pre<-strsplit(df$lab, "[0-9]+")
df$suf<-strsplit(df$lab, "[A-Z]+")
这给了
lab pre suf 1 N00 N , 00 2 N01 N , 01 3 N02 N , 02 4 B00 B , 00 5 B01 B , 01 6 B02 B , 02 7 Z21 Z , 21 8 BA01 BA , 01 9 NA03 NA , 03
所以,第一个 strsplit 工作正常,但第二个给出了一个列表,每个都有两个元素,一个空字符串和我想要的结果,并将它们都填充到数据框列中。
如何从列表的每个元素中选择第二个子元素? (或者,有没有更好的方法来做到这一点)
【问题讨论】:
标签: r