gpt4 book ai didi

r - 在 data.frame 中的列中解包和合并列表

转载 作者:行者123 更新时间:2023-12-03 21:11:24 24 4
gpt4 key购买 nike

我有以下 data.frame :

id     name   altNames
1001 Joan character(0)
1002 Jane c("Janie", "Janet", "Jan")
1003 John Jon
1004 Bill Will
1005 Tom character(0)

栏目 altNames可以是空的(即字符(0)),只有一个名字,或者一个名字列表。我要的是 data.frame (或列表)其中每个条目来自 name和/或 altNames只与相应的 id 一起出现一次, 像这样:
id     name
1001 Joan
1002 Jane
1002 Janie
1002 Janet
1002 Jan
1003 John
1003 Jon
1004 Bill
1004 Will
1005 Tom

最有效的方法是什么?更好的是 dplyr被利用。
谢谢

编辑:这是数据:
df <- data_frame(
id = c("1001", "1002","1003", "1004", "1005"),
name = c("Joan", "Jane", "John", "Bill", "Tom"),
altNames = list(character(0), c("Janie", "Janet", "Jan"), "Jon", "Will", character(0))
)

最佳答案

这是一个可能的 data.table方法

library(data.table)
setDT(dat)[, .(name = c(name, unlist(altNames))), by = id]
# id name
# 1: 1001 Joan
# 2: 1002 Jane
# 3: 1002 Janie
# 4: 1002 Janet
# 5: 1002 Jan
# 6: 1003 John
# 7: 1003 Jon
# 8: 1004 Bill
# 9: 1004 Will
# 10: 1005 Tom

关于r - 在 data.frame 中的列中解包和合并列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31195925/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com