使用聚合通过两个条件合并数据框的列
发布时间:2020-05-23 00:05:59 所属栏目:程序设计 来源:互联网
导读:我有一个像这样的矩阵 P A B C 1 2 0 5 2 1 1 3 3 0 4 7 1 1 1 0 3 1 1 0 3 0 2 1 2 3 3 4 我想按P和每个列合并/排序行.因此,每个P值为每列一次,并且每列中每个P的值相加.结果应该是: P A B C 1 3 0 0
|
我有一个像这样的矩阵 P A B C 1 2 0 5 2 1 1 3 3 0 4 7 1 1 1 0 3 1 1 0 3 0 2 1 2 3 3 4 我想按P和每个列合并/排序行.因此,每个P值为每列一次,并且每列中每个P的值相加.结果应该是: P A B C 1 3 0 0 1 0 1 0 1 0 0 5 2 4 0 0 2 0 4 0 2 0 0 7 3 1 0 0 3 0 7 0 3 0 0 8 我尝试过已经聚合但它只能帮助我总结所有列的每个P值,这样我每个P只有一行. 另一个想法是使用diag函数本身来创建矩阵.然后你可以将这些矩阵联系在一起.xx=aggregate(. ~ P,df,sum)
yy=xx[,-1]
yy=as.data.frame(t(yy))
cbind(rep(1:ncol(yy),nrow(yy)),do.call("rbind",lapply(yy,function(xx) diag(xx,nrow = nrow(yy),ncol = nrow(yy)))))
[,1] [,2] [,3] [,4]
[1,] 1 3 0 0
[2,] 2 0 1 0
[3,] 3 0 0 5
[4,] 1 4 0 0
[5,] 2 0 4 0
[6,] 3 0 0 7
[7,] 1 1 0 0
[8,] 2 0 7 0
[9,] 3 0 0 8 (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
