相关疑难解决方法(0)

更快速地计算频率和从长到宽的方式

我试图获得两个变量的水平的每个组合的计数,"周"和"id".我希望结果将"id"作为行,将"week"作为列,将计数作为值.

到目前为止我尝试过的例子(尝试过其他一些东西,包括添加一个虚拟变量= 1然后再加fun.aggregate = sum上它):

library(plyr)
ddply(data, .(id), dcast, id ~ week, value_var = "id", 
        fun.aggregate = length, fill = 0, .parallel = TRUE)
Run Code Online (Sandbox Code Playgroud)

但是,我必须做错事,因为这个功能没有完成.有一个更好的方法吗?

输入:

id      week
1       1
1       2
1       3
1       1
2       3
Run Code Online (Sandbox Code Playgroud)

输出:

  1  2  3
1 2  1  1
2 0  0  1
Run Code Online (Sandbox Code Playgroud)

aggregate r plyr reshape2

8
推荐指数
3
解决办法
1828
查看次数

重塑一列中值的数据

我的data.frame看起来像这样

ID | test | test_result
1  |  B   |   10
2  |  A   |   9
3  |  A   |   11
4  |  C   |   7
5  |  F   |   5
Run Code Online (Sandbox Code Playgroud)

我希望得到这样的东西:

test | test_reult_ID1 | test_result_ID2 | test_result_ID3 ...
 A   |   NA           |     9           |   11
 B   |   10           |     NA          |   NA
Run Code Online (Sandbox Code Playgroud)

它使用reshape()到宽格式,只有少数情况,但整个数据框(大约23.000 ID)reshape()需要太长时间.Melt()和cast()会对数据进行重新整形,但会将test_result中的值替换为测试频率.任何其他想法如何管理?谢谢!

r reshape dataframe melt

2
推荐指数
1
解决办法
7042
查看次数

标签 统计

r ×2

aggregate ×1

dataframe ×1

melt ×1

plyr ×1

reshape ×1

reshape2 ×1