全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
209 2
2016-10-14
悬赏 100 个论坛币 未解决
求大神帮帮忙!!
比如说有两个数据框:
A:    c1     c2     c3
  r1  1       2      3
  r2  4       5      6
  r3  7       8      9

B:    c1     c2     c3
  r1   4     5       1
  r2   8     2       3
  r3   0     7       1

我想 把 A 数据框 每一行按从大到小顺序排列,形成:
A:    c1     c2     c3
  r1  3       2      1
  r2  6       5      4
  r3  9       8      7


但是同时B数据框里的数也根据A数据框元素位置的变动而变动, 形成这样的数据框:
B:    c1     c2     c3
  r1   1     5       4
  r2   4     5       6
  r3   7     8       9


或者仅仅是根据A的变动,把B里的元素提取出来也行。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2016-10-14 19:10:04
手工顶
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2016-10-14 19:11:30
已解决:http://cos.name/cn/topic/417855/  以下引用

a = matrix(c(3,5,6,2,1,9,8,7,4),3,3)
b = matrix(c(1,2,3,4,5,6,7,8,9),3,3,byrow = T)

##把a矩阵按行从大到小排列,则每行的元素排序矩阵 id_matrix为:
id_matrix = apply(a,1,function(x) order(x,decreasing = T))
##此时该矩阵的每一列对应矩阵a每一行元素的排序
##矩阵b对应变动后,形成的新矩阵b_new:
b_new = c()
for(i in 1:nrow(b)){
b_new= rbind(b_new,b[i,][id_matrix[,i]])
}



二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群