Более быстрая альтернатива плавлению и слипанию
У меня есть большой список векторов символов, который выглядит примерно так:
List of 53095
$ 30875 : chr [1:10] "<h2 class=\"buildings-page-title buildings- ...
$ 30876 : chr [1:10] "<h2 class=\"buildings-page-title buildings- ...
Я хочу создать data.table (или фрейм данных) с одним столбцом. Итак, что я сделал:
# require(purr); require(data.table)
clean.data<-function(input){
output1<-map(input, melt)
output2<-data.frame()
for (i in 1:length(output1)) {
output2<-rbind(output2, output1[[i]])
}
return(output2)}
Используя тестовые данные в качестве примера, я хочу
test<-list(c("hello", "world", "!"), c("Nice","to","meet","you"))
print(clean.data(test))
> print(clean.data(test))
value
1 hello
2 world
3 !
4 Nice
5 to
6 meet
7 you
Но эта функция невероятно медленная, возможно, потому что мой набор данных большой, но я думаю, что мой код плохой. Был бы какой-нибудь другой более эффективный способ получить те же самые результаты?
1 ответ
Решение
Более быстрый способ был бы unlist
это и создать один столбец data.frame
data.frame(value = unlist(test))