R:删除数据框内的列表类型 [英] R: Remove list type within dataframe

查看:83
本文介绍了R:删除数据框内的列表类型的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有列表类型的数据,尽管它以列表的形式存储在数据帧中,但仍将其作为数据帧移入.

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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆