我有一个带有非数字值的数据框,格式如下:
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
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句