全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
3003 0
2022-04-10

背景:下载某数据库的数据做数据分析,发现下载的数据结构是多层list嵌套,与平时遇到的数据表(data.frame)不同,并且第二层list的名称是本人需要的变量。

问题:如何将将第二层的list的名称嵌入到内层(第三层)的数据中,作为变量?

2.png
一、什么是list列表

列表是 R 语言的对象集合,可以用来保存不同类型的数据,可以是数字、字符串、向量、另一个列表等,当然还可以包含矩阵和函数,通常用list()函数创建列表。列表list最大优点:容纳多种类型的数据,可多层嵌套。

复制代码

二、简单列表list与data.frame转换
一般情况情况,as.list()和as.data.frame()可直接实现简单的list和data.frame类型数据的转换。
  • as.list(x)可将数据框x按列转换为多个list
  • as.data.frame(x),可将列表x按列合并为一个数据框data.frame
复制代码
三、两层list将内层相同结构的数据合并为data.frame(解答开头的问题)
    复制代码

方法1:data.table::rbindlist()

第二层list的名称直接替代了内层数据框data.frame的行名rownames,并实现数据框的行合并。

缺点:如果内层数据框的行名是需要的变量,数据会被覆盖

复制代码
1.png
方法2:do.call与tibble::rownames_to_column与 tidyr::separate并用
复制代码

欢迎咨询,微信ahalara


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群