我有一个清单。每个元素都是一堆要处理的文本。认为清单上是一本书。每个元素都一页。
该过程的最终输出是一个数据帧,其中每个列表元素的正则表达式都有一些结果。
我想要添加到每一行的元素编号。请注意,空元素已消失。我创建了一个虚拟函数来说明(实际过程更加复杂)
mylist <- list("some text here 234","","more text here 23 ","adding a bunch of words 98")
getnumber <- function(text) {
str_extract_all(text,pattern = "[0-9]+")
}
lapply(mylist,getnumber) %>% unlist() %>%
data.frame(stringsAsFactors = FALSE)
.
1 234
2 23
3 98
期望的输出
. element
1 234 1
2 2
3 23 3
4 98 4
答案 0 :(得分:1)
问题是unlist
只会保留list
-不是空的元素。正如@DavidArenburg正确指出的那样,我们不需要lapply
:
data.frame(
. = str_extract_all(unlist(mylist), "[0-9]+", simplify = TRUE),
element = 1:length(mylist),
stringsAsFactors = FALSE
)
输出:
. element
1 234 1
2 2
3 23 3
4 98 4