首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何将长列表中的某些项目转换为R中的数据帧?

如何将长列表中的某些项目转换为R中的数据帧?
EN

Stack Overflow用户
提问于 2020-04-30 12:21:53
回答 2查看 30关注 0票数 1

我有一个4500个元素的列表。每个列表的长度为7。是否可以从每个列表中提取某些项目并转换为数据帧。下面是一个例子

代码语言:javascript
代码运行次数:0
运行
复制
List1 <- list(Name = "Peter" , Age = 25 , State = "Texas" , Occupation = "Analyst1" , Salary =5000)

List2 <- list(Name = "Susan" , Age = 30 , State = "New York" , Occupation = "Analyst11" , Salary =7000)

List3 <- list(Name = "John" , Age = 35 , State = "New Jersey" , Occupation = "Manager" , Salary =10000)
List4 <- list(Name = "Sam" , Age = 30 , State = "Florida" , Occupation = "Analyst1" , Salary =5000)
List5 <- list(Name = "Judy" , Age = 30 , State = "California" , Occupation = "Analyst11" , Salary =7000)
FinalList <- list(List1 , List2, List3 , List4 , List5)

我想创建一个列名称,年龄和工资的数据框。我试着像这样使用do.call

代码语言:javascript
代码运行次数:0
运行
复制
 FinalResult <- do.call(rbind ,FinalList[][-c(3,4)] )

它正在创建一个数据帧,如下所示:

代码语言:javascript
代码运行次数:0
运行
复制
 #     name    Age State        Occupation  Salary
 #[1,] "Peter" 25  "Texas"      "Analyst1"  5000  
 #[2,] "Sam"   30  "Florida"    "Analyst1"  5000  
 #[3,] "Judy"  30  "California" "Analyst11" 7000  

但我想要创造的是

代码语言:javascript
代码运行次数:0
运行
复制
 #         name    Age   Salary
 #[1,]    "Peter"  25    5000  
 #[2,]    "Susan"  30    7000  
 #[3,]    "John"   35    10000 
 #[4,]    "Sam"    30    5000  
 #[5,]    "Judy"   30    7000  

有人能帮我吗?谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-04-30 12:25:48

我认为你想要做的是:

代码语言:javascript
代码运行次数:0
运行
复制
do.call(rbind ,FinalList)[, -c(3, 4)]
#If needed as dataframe
#do.call(rbind.data.frame,FinalList)[, -c(3, 4)]

或者可能更简单地使用dplyr

代码语言:javascript
代码运行次数:0
运行
复制
library(dplyr)
bind_rows(FinalList) %>% select(-(3:4))

data.table

代码语言:javascript
代码运行次数:0
运行
复制
library(data.table)
rbindlist(FinalList)[, -c(3, 4)]
票数 1
EN

Stack Overflow用户

发布于 2020-05-01 04:17:16

我们可以使用unnest_wider

代码语言:javascript
代码运行次数:0
运行
复制
library(purrr)
library(tidyr)
tibble(col = FinalList) %>%
    unnest_wider(c(col)) %>%
    dplyr::select(-c(3:4))
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61515886

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档