R:删除数据框内的列表类型 [英] R: Remove list type within dataframe
问题描述
我有列表类型的数据,尽管它以列表的形式存储在数据帧中,但仍将其作为数据帧移入.
I have list type data that is been moved in to as dataframe while though it is stored in the form of list within dataframe.
代码:(列出到数据框)
O<-lapply(res, function(x) str_extract_all(x,pattern))
O
library(plyr)
maxl <- max(sapply(O,length))
out <- do.call(cbind, lapply(O,function(x) x[1:maxl]))
out <- as.data.frame(out)
结果:O
$text
$text[[1]]
[1] "qlikview" "gpa" "access" "gpa" "access" "access" "qlikview" "gpa" "access"
[10] "gpa"
$text[[2]]
[1] "report" "qlikview" "gpa" "access" "qlikview" "gpa" "access" "qlikview" "gpa"
[10] "access"
$text[[3]]
[1] "qlikview" "gpa" "access" "gpa" "access" "access" "qlikview" "gpa" "access"
[10] "gpa"
$text[[4]]
[1] "qlikview" "gpa" "access" "gpa" "access" "access" "qlikview" "gpa" "access"
[10] "gpa"
$text[[5]]
[1] "report" "qlikview" "gpa" "access" "access" "gpa" "access" "qlikview" "gpa"
[10] "access" "access" "gpa" "qlikview" "gpa" "access" "qlikview" "gpa" "access"
$text[[6]]
[1] "report" "qlikview" "access" "access" "report" "qlikview" "access" "access" "gpa"
[10] "qlikview" "access" "access" "qlikview" "access" "access"
$text[[7]]
[1] "report" "report" "access" "access" "report" "report" "report" "report" "report" "report" "data"
[12] "data" "report" "access" "report" "report"
$text[[8]]
[1] "report" "qlikview" "gpa" "access" "gpa" "access"
$text[[9]]
[1] "report" "gpa" "access" "access" "gpa" "gpa" "gpa" "gpa" "gpa" "access" "gpa"
[12] "gpa" "gpa" "report"
$text[[10]]
[1] "report" "gpa" "gpa" "access" "gpa" "access" "gpa" "access" "gpa" "gpa" "report"
[12] "gpa" "gpa" "access" "gpa" "gpa" "gpa" "gpa" "gpa"
dput(O$text[1:10])
list(c("qlikview", "gpa", "access", "gpa", "access", "access",
"qlikview", "gpa", "access", "gpa"), c("report", "qlikview",
"gpa", "access", "qlikview", "gpa", "access", "qlikview", "gpa",
"access"), c("qlikview", "gpa", "access", "gpa", "access", "access",
"qlikview", "gpa", "access", "gpa"), c("qlikview", "gpa", "access",
"gpa", "access", "access", "qlikview", "gpa", "access", "gpa"
), c("report", "qlikview", "gpa", "access", "access", "gpa",
"access", "qlikview", "gpa", "access", "access", "gpa", "qlikview",
"gpa", "access", "qlikview", "gpa", "access"), c("report", "qlikview",
"access", "access", "report", "qlikview", "access", "access",
"gpa", "qlikview", "access", "access", "qlikview", "access",
"access"), c("report", "report", "access", "access", "report",
"report", "report", "report", "report", "report", "data", "data",
"report", "access", "report", "report"), c("report", "qlikview",
"gpa", "access", "gpa", "access"), c("report", "gpa", "access",
"access", "gpa", "gpa", "gpa", "gpa", "gpa", "access", "gpa",
"gpa", "gpa", "report"), c("report", "gpa", "gpa", "access",
"gpa", "access", "gpa", "access", "gpa", "gpa", "report", "gpa",
"gpa", "access", "gpa", "gpa", "gpa", "gpa", "gpa"))
预期结果:
text
1 qlikview, gpa, access, gpa, access, access, qlikview, gpa, access, gpa
2 report, qlikview, gpa, access, qlikview, gpa, access, qlikview, gpa, access
3 qlikview, gpa, access, gpa, access, access, qlikview, gpa, access, gpa
4 qlikview, gpa, access, gpa, access, access, qlikview, gpa, access, gpa
5 report, qlikview, gpa, access, access, gpa, access, qlikview, gpa, access, access, gpa, qlikview, gpa, access, qlikview, gpa, access
6 report, qlikview, access, access, report, qlikview, access, access, gpa, qlikview, access, access, qlikview, access, access
7 report, report, access, access, report, report, report, report, report, report, data, data, report, access, report, report
8 report, qlikview, gpa, access, gpa, access
我可以在这里使用正则表达式删除c(""")
推荐答案
尝试执行此操作
library('stringr')
apply(data, 1, function(x) str_c(x$columnnane,collapse=','))
其中,数据是您的数据框,列名是包含列表的列.
where, data is you dataframe and columnname is the column containing list.
修改后的答案
out = do.call(rbind, lapply(data, function(x) str_c(x,collapse=', ')))
数据是您的列表对象
如果列表存储在数据框内,则像这样通过列代替上面的数据
if the list is stored inside a dataframe then pass the column in place of the data above like this
out = do.call(rbind, lapply(data$columnname, function(x) str_c(x,collapse=', ')))
它将为您提供.希望这就是您要寻找的!
it will give you this. I hope this is what you are looking for!
出 [,1]
[1," qlikview,gpa,访问,gpa,访问,访问,qlikview,gpa,访问,gpa"
[2,]报告,qlikview,gpa,访问权限,qlikview,gpa,访问,qlikview,gpa,访问权限"
[3,]"qlikview,gpa,访问权,gpa,访问权,访问权,qlikview,gpa,访问权,gpa"
[4,]"qlikview,gpa,访问权,gpa,访问权,访问权,qlikview,gpa,访问权,gpa"
[5,]报告,qlikview,gpa,访问,访问,gpa,访问,qlikview,gpa,访问,访问,gpa,qlikview,gpa,访问,qlikview,gpa,访问" [6,]报告,qlikview,访问,访问,报告,qlikview,访问,访问,gpa,qlikview,访问,访问,qlikview,访问,访问"
[7,]报告,报告,访问,访问,报告,报告,报告,报告,报告,报告,数据,数据,报告,访问,报告,报告"
[8,]报告,qlikview,gpa,访问权限,gpa,访问权限"
[9,]报告,gpa,访问,访问,gpa,gpa,gpa,gpa,gpa,访问,gpa,gpa,gpa,报告"
[10,]报告,gpa,gpa,访问,gpa,访问,gpa,访问,gpa,gpa,报告,gpa,gpa,访问,gpa,gpa,gpa,gpa,gpa"
out [,1]
[1,] "qlikview, gpa, access, gpa, access, access, qlikview, gpa, access, gpa"
[2,] "report, qlikview, gpa, access, qlikview, gpa, access, qlikview, gpa, access"
[3,] "qlikview, gpa, access, gpa, access, access, qlikview, gpa, access, gpa"
[4,] "qlikview, gpa, access, gpa, access, access, qlikview, gpa, access, gpa"
[5,] "report, qlikview, gpa, access, access, gpa, access, qlikview, gpa, access, access, gpa, qlikview, gpa, access, qlikview, gpa, access" [6,] "report, qlikview, access, access, report, qlikview, access, access, gpa, qlikview, access, access, qlikview, access, access"
[7,] "report, report, access, access, report, report, report, report, report, report, data, data, report, access, report, report"
[8,] "report, qlikview, gpa, access, gpa, access"
[9,] "report, gpa, access, access, gpa, gpa, gpa, gpa, gpa, access, gpa, gpa, gpa, report"
[10,] "report, gpa, gpa, access, gpa, access, gpa, access, gpa, gpa, report, gpa, gpa, access, gpa, gpa, gpa, gpa, gpa"
这篇关于R:删除数据框内的列表类型的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!