Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.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
使用each()和reforme2::dcast聚合数据_R_Aggregate Functions_Plyr_Reshape - Fatal编程技术网

使用each()和reforme2::dcast聚合数据

使用each()和reforme2::dcast聚合数据,r,aggregate-functions,plyr,reshape,R,Aggregate Functions,Plyr,Reshape,我通常使用重塑包来聚合一些数据(d'uh),通常使用plyr,因为它的超级棒功能每个。最近,我收到一个建议,建议我切换到重塑2并尝试一下,现在我似乎无法再使用每一个魔法了 重塑 >m投射(m,am+vs~变量,每个变量(最小值,最大值,平均值,标准差)) am与hp_最小hp_最大hp_平均hp_sd 1 0 0 150 245 194.16667 33.35984 2 0 1 62 123 102.14286 20.93186 3 1 0 91

我通常使用
重塑
包来聚合一些数据(d'uh),通常使用
plyr
,因为它的超级棒功能
每个
。最近,我收到一个建议,建议我切换到
重塑2
并尝试一下,现在我似乎无法再使用
每一个
魔法了

重塑
>m投射(m,am+vs~变量,每个变量(最小值,最大值,平均值,标准差))
am与hp_最小hp_最大hp_平均hp_sd
1  0  0    150    245 194.16667 33.35984
2  0  1     62    123 102.14286 20.93186
3  1  0     91    335 180.83333 98.81582
4  1  1     52    113  80.57143 24.14441
重塑2
require(plyr)
>m dcast(m,am+vs~变量,每个(最小值,最大值,平均值,标准差))
结构错误(有序,尺寸=ns):
dims[product 4]与对象[16]的长度不匹配
此外:警告信息:
1:在fs[[i]](x,…):min没有不丢失的参数;返回Inf
2:在fs[[i]](x,…)中:max没有不丢失的参数;返回-Inf
我没有心情去梳理这一点,因为我以前的代码在
重塑
方面非常有魅力,但我真的很想知道:

  • 是否可以将
    每个
    dcast
    一起使用
  • 是否建议使用
    重塑2
    重塑
    是否已弃用

  • 您的第一个问题的答案似乎是否定的。引用自
    ?重塑2::dcast

    如果您提供的变量组合不能唯一标识 在原始数据集中的一行,您需要提供 聚合函数,fun.aggregate。这个函数应该需要一段时间 并返回单个摘要统计信息

    查看Hadley的github页面,可以看出他知道此功能已被删除,但似乎认为最好在plyr中完成,大概是通过以下方式:

    ddply(m,.(am,vs),summarise,min = min(value),
                               max = max(value),
                               mean = mean(value),
                               sd = sd(value))
    
    或者如果您真的想继续使用
    每一个

    ddply(m,.(am,vs),function(x){each(min,max,mean,sd)(x$value)})
    

    是的,我看到了,我想还是有一些黑客的方法可以做到这一点谢谢
    重塑
    的状态如何?它被弃用了吗@我不知道。但哈德利写了这么多的软件包,他可能只能定期维护一定数量的软件包。我的印象是,他会根据用户反馈将
    重塑
    功能移回
    重塑2
    。所以也许让他知道最好?是的,乔兰,我想你是对的。如果速度再快一点,我也可以用plyr。将不得不做一些测试…从重塑自述:重塑2是重塑软件包的重新启动。该软件包首次发布已经五年多了,在这段时间里,我学到了大量关于R编程的知识,以及如何在R中处理数据。Reforme2利用这些知识制作了一个新的软件包,用于重新调整数据,使其更加集中,速度更快。此版本以功能为代价提高了速度,因此我将其重命名为Reforme2,以避免给现有用户带来问题。根据用户反馈,我可能会重新介绍其中一些功能。
    ddply(m,.(am,vs),summarise,min = min(value),
                               max = max(value),
                               mean = mean(value),
                               sd = sd(value))
    
    ddply(m,.(am,vs),function(x){each(min,max,mean,sd)(x$value)})