gpt4 book ai didi

使用非数值 reshape R 中的数据框

转载 作者:行者123 更新时间:2023-12-04 12:12:37 26 4
gpt4 key购买 nike

我有一个非数字值的数据框,格式如下:

DF1:

  col1    col2
1 a b
2 a c
3 z y
4 z x
5 a d
6 m n

我需要把它转换成这种格式,

DF2:

  col1    col2    col3    col4
1 a b c d
2 z y x NA
3 m n NA NA

以 col1 作为主键(不确定这是否是 R 中的正确术语),其余列包含与该键关联的元素(如 DF1 中所示)。

与 DF1 相比,DF2 将包含更多列,具体取决于与任何键关联的元素数量。

由于与每个键关联的元素数量不同,某些列将没有值,表示为 NA(如 DF2 所示)。

列名可以是任何内容。

我尝试使用 reshape()、melt() + cast(),甚至是一个通用的 for 循环,我在其中使用 cbind 并尝试删除行。

它是包含超过 5000 万行的非常大的数据集的一部分。我可能必须为此任务使用云服务,但这是一个不同的讨论。

我是 R 的新手,所以可能缺少一些明显的解决方案。

如有任何帮助,我们将不胜感激。

-谢谢

最佳答案

如果这是一个大数据集,我们可以使用data.table

library(data.table)
setDT(DF1)[, i1:=paste0("col", seq_len(.N)+1L), col1]
dcast(DF1, col1~i1, value.var='col2')
# col1 col2 col3 col4
#1: a b c d
#2: m n NA NA
#3: z y x NA

关于使用非数值 reshape R 中的数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35809533/

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