我已经从twitter中提取了数据,它显示为List列(运行代码后会得到什么)。我希望输出显示为“损坏”列中的内容。
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")
我们可以从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
我们可以将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))
注意:这两个选项都没有任何警告