执行类似于熔化到R数据帧的操作
我有这样一个数据帧: 第一列是数字,第二列是逗号分隔的列表(字符) 我想在本质上“融化”数据帧,类似于重塑包。因此,输出是一个数据帧,如下所示执行类似于熔化到R数据帧的操作,r,dataframe,R,Dataframe,我有这样一个数据帧: 第一列是数字,第二列是逗号分隔的列表(字符) 我想在本质上“融化”数据帧,类似于重塑包。因此,输出是一个数据帧,如下所示 id numbers 1 2 1 4 1 5 2 1 2 4 2 6 3 NA 4 NA 5 5 5 1 5 2 除重塑2包外,每个数字都必须在一列中。。。如果有很多数字,会占用太多的存储空间。。。这就是我选择将数字列表设置为逗号分隔列表的原因。但melt不再适用于此设置 您能推荐实现从输入数据帧到输出数据帧转换的最有效方法吗?我将为每一行创建一个da
id numbers
1 2
1 4
1 5
2 1
2 4
2 6
3 NA
4 NA
5 5
5 1
5 2
除重塑2包外,每个数字都必须在一列中。。。如果有很多数字,会占用太多的存储空间。。。这就是我选择将数字列表设置为逗号分隔列表的原因。但melt不再适用于此设置
您能推荐实现从输入数据帧到输出数据帧转换的最有效方法吗?我将为每一行创建一个data.frame并将它们存储在列表中,其中df是您的初始data.frame
l = list()
for (j in 1:nrow(df)){
l[[j]] = data.frame(id = df$id[[j]],
numbers = split(df$numbers[[j]], ','))
}
然后,您可以使用带有“data.frame”选项的plyr::ldply将所有列表元素堆叠到单个data.frame中。检查以下问题:类似的问题将为您提供一些有用的信息。
l = list()
for (j in 1:nrow(df)){
l[[j]] = data.frame(id = df$id[[j]],
numbers = split(df$numbers[[j]], ','))
}