使用聚合通过两个条件合并数据框的列
发布时间: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 (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |