Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
执行类似于熔化到R数据帧的操作_R_Dataframe - Fatal编程技术网

执行类似于熔化到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]], ','))
}