R如何提取由字符列表组成的数据框中的特定元素

时间:2015-04-01 17:03:13

标签: r

我有一个数据框labels,由3行1列组成,如下所示:

 labels
                  labels(n)
 1 Text, Commission20120125
 2    Text, Council2015mmdd
 3 Text, Parliament20140312

使用:

 labels[1,]
 [[1]]
 [1] "Text"               "Commission20120125"

  labels[2,]
  [[1]]
 [1] "Text"            "Council2015mmdd"

 labels[3,]
 [[1]]
 [1] "Text"               "Parliament20140312"

有没有"简单"访问除"Text"以外的所有内容并将其放在向量中的方法,如下所示:

c("Commission20120125", "Council2015mmdd", "Parliament20140312")

到目前为止,我唯一的解决方案是手动执行:

l1 <- as.vector(labels[1,])  
l1 <- unlist(l1)  
l1 <- str_extract(l1, "[A-Z][a-z]+[0-9]+")
l <- l1[2]
每个原始的

等等。

2 个答案:

答案 0 :(得分:1)

您可以尝试

sapply(labels[,1], '[',2)
#[1] "Commission20120125" "Council2015mmdd"    "Parliament20140312"

数据

labels <- data.frame(labelsn = I(list(c('Text', 'Commission20120125'),
 c('Text', 'Council2015mmdd'), c('Text', 'Parliament20140312'))))

答案 1 :(得分:1)

另一种选择(我认为它更快),

unlist(labels)[c(FALSE,TRUE)] ## use of recycling here 

      labelsn2             labelsn4             labelsn6 
"Commission20120125"    "Council2015mmdd" "Parliament20140312"