Отменить список из нескольких элементов в R - PullRequest
2 голосов
/ 09 мая 2020

Я извлек данные из твиттера, и они отображаются в виде списка столбцов (что вы получите после запуска кода). Я хочу, чтобы результат был таким, как в столбце Сломано.

Image for data

data <- data.frame(matrix(, nrow=4, ncol=2))
colnames(data)[1:2] <- c("List", "Broken")
data$List[1] <- 1
data$List[2] <- list(c("1", "SmythsToysUK"))
data$List[3] <- list(c("1", "FortniteGame", "CityCtrMirdif", "itpliveme"))
data$List[4] <- 1
data$Broken[1:4]<- c("SmythsToysUK","FortniteGame","CityCtrMirdif","itpliveme")

Ответы [ 2 ]

2 голосов
/ 09 мая 2020

Мы можем удалить все числа из столбца List.

temp <- unlist(data$List)
data$Broken <- temp[is.na(as.numeric(temp))]
data

#                                       List        Broken
#1                                         1  SmythsToysUK
#2                           1, SmythsToysUK  FortniteGame
#3 1, FortniteGame, CityCtrMirdif, itpliveme CityCtrMirdif
#4                                         1     itpliveme
1 голос
/ 09 мая 2020

Мы можем использовать grep с unlist. После unlist ввода list выберите только элементы с буквами

data$Broken <- grep("[A-Za-z]", unlist(data$List), value = TRUE)
data$Broken
#[1] "SmythsToysUK"  "FortniteGame"  "CityCtrMirdif" "itpliveme"   

Или другой вариант - удалить первый элемент, который кажется индексным, а затем unlist

unlist(sapply(data$List, `[`, -1))

ПРИМЕЧАНИЕ: Оба варианта не имеют предупреждений

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...