楼主: ljh971022
1988 5

[作业] 关于list,matrix的缺失值问题 [推广有奖]

  • 0关注
  • 0粉丝

等待验证会员

大专生

96%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
1.0005
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
224 点
帖子
14
精华
0
在线时间
111 小时
注册时间
2020-1-1
最后登录
2021-11-29

楼主
ljh971022 发表于 2020-1-4 01:03:21 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
小弟的r语言现有一个list如下:
> names
[[1]]
[1] "我" "他"

[[2]]
[1] "我" "你"

[[3]]
[1] "你"


[[4]]
[1] "我"


      由于后续需要将list转为dataframe,每列的元素数量不一样多无法进行转化。所以想问下:有没有办法在第三、四个list中分别加上一个元素,命名为NA,使得每个list的元素都一样多呢?(或者在将list转化为matrix或dataframe的过程中有没有办法对数量不足的列自动用NA进行填充,而不是循环使用已有的元素呢?)
二维码

扫码加我 拉你入群

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

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

关键词:matrix list Mat IST 缺失值

回帖推荐

owenqi 发表于2楼  查看完整内容

感觉你可以用data.table解决这个问题。请参考

沙发
owenqi 在职认证  学生认证  发表于 2020-1-4 01:20:26
感觉你可以用data.table解决这个问题。请参考
https://rdrr.io/rforge/data.table/man/rbindlist.html
  1. # fill missing columns, and match by col names
  2.     DT1 = data.table(A=1:3,B=letters[1:3])
  3.     DT2 = data.table(B=letters[4:5],C=factor(1:2))
  4.     l = list(DT1,DT2)
  5.     rbindlist(l, use.names=TRUE, fill=TRUE)
复制代码
已有 1 人评分论坛币 收起 理由
cheetahfly + 10 奖励积极上传好的资料

总评分: 论坛币 + 10   查看全部评分

藤椅
ljh971022 发表于 2020-1-4 08:37:06
owenqi 发表于 2020-1-4 01:20
感觉你可以用data.table解决这个问题。请参考
我的list是通过分割文本形成的(strsplit命令),可是输入rbindlist之后一直提示“Error in rbindlist(c, use.names = T, fill = T) :  Item 1 of input is not a data.frame, data.table or list”,为什么无法识别list的属性呢?

板凳
ljh971022 发表于 2020-1-4 09:09:48
owenqi 发表于 2020-1-4 01:20
感觉你可以用data.table解决这个问题。请参考
因为strsplit形成的list没有列名,rbindlist命令不能将use.names参数设为true。想问下,怎么给list的元素加上列名呢?

报纸
owenqi 在职认证  学生认证  发表于 2020-1-4 23:54:18
ljh971022 发表于 2020-1-4 09:09
因为strsplit形成的list没有列名,rbindlist命令不能将use.names参数设为true。想问下,怎么给list的元素 ...
  1. lst <- list(a="one", b="two", c=c(1:3))
  2. names(lst)
  3. [1] "a" "b" "c"
  4. names(lst) <- c("x", "y", "z")
复制代码

已有 1 人评分学术水平 热心指数 信用等级 收起 理由
Sunknownay + 3 + 3 + 3 热心帮助其他会员

总评分: 学术水平 + 3  热心指数 + 3  信用等级 + 3   查看全部评分

地板
ljh971022 发表于 2020-1-7 20:35:32
owenqi 发表于 2020-1-4 23:54
你好!rbindlist命令的use.names参数用来识别的列名好像不是list里分量([[n]])的名称,而是元素的列名(也就是上面网站 https://rdrr.io/rforge/data.table/man/rbindlist.html 例子里的A和B)。我现在的问题是list里每个分量[[n]]里只有若干个元素,但具体的列。想问下,这种情况能把每个元素排成一列,然后给每列都设置一个列名吗?

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-25 02:41