楼主: 416171205
1471 4

[问答] 如何对重复值随机化 [推广有奖]

  • 0关注
  • 1粉丝

已卖:1052份资源

硕士生

88%

还不是VIP/贵宾

-

威望
0
论坛币
814 个
通用积分
1.0081
学术水平
7 点
热心指数
9 点
信用等级
4 点
经验
2203 点
帖子
74
精华
0
在线时间
306 小时
注册时间
2008-11-4
最后登录
2023-2-25

楼主
416171205 发表于 2013-1-26 07:03:39 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
> z<-matrix(c(1:8,2,7,5,9,7,7,3,5),8,2)
>z
     [,1] [,2]
[1,]    1    2
[2,]    2    7
[3,]    3    5
[4,]    4    9
[5,]    5    7
[6,]    6    7
[7,]    7    3
[8,]    8    5
我想根据第二列来排序,使用下面命令:

> z[order(z[,2]),]
     [,1] [,2]
[1,]    1    2
[2,]    7    3
[3,]    3    5
[4,]    8    5
[5,]    2    7
[6,]    5    7
[7,]    6    7
[8,]    4    9


但是这个时候第二列有两个5,相应的第一列的3和8是按照原始顺序排下来的,三个7对应的2、5、6也是按原始顺序排列的,我想让3和8随机出现,即第三行和第四行可能是
[3,]    3    5
[4,]    8    5
也可能是
[3,]    8    5
[4,]    3    5
两者发生的机率一样。三个7对应的三行也是这样。。。请问应该如何写这个命令?谢谢


二维码

扫码加我 拉你入群

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

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

关键词:随机化 重复值 Order der 如何写 如何

沙发
likeermei 发表于 2013-1-26 08:12:56
求解释。。。。。。。

藤椅
qoiqpwqr 发表于 2013-1-26 08:35:41
你这里第一列是按照从小到大的顺序排列是因为z的第一列的3,8和2,5,6碰巧是从小到大的顺序。如果z的行是随机排列的,你得到的结果也就是随机的。

> z <- matrix(c(1:8,2,7,5,9,7,7,3,5),8,2)
> z <- z[sample(1:nrow(z)), ]
> z[order(z[,2]),]
     [,1] [,2]
[1,]    1    2
[2,]    7    3
[3,]    8    5
[4,]    3    5
[5,]    2    7
[6,]    6    7
[7,]    5    7
[8,]    4    9
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
416171205 + 1 + 1 + 1 谢谢,非常有道理!!!

总评分: 学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

板凳
happydude 发表于 2013-1-26 09:36:05
生成[0,1]uniform distribution 数,按〉0.5或<0.5, 就可以决定如何排。其它同理。
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
416171205 + 1 + 1 + 1 我也想到了这个办法,但是操作还是有点复杂.

总评分: 学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

报纸
ntsean 发表于 2013-1-26 10:36:12
先把z 随机打乱行顺序, 然后在排序

z<-matrix(c(1:8,2,7,5,9,7,7,3,5),8,2)

n <- nrow(z)
z1 <- z[sample(1:n, n), ]
z2 <- z1[order(z1[, 2]), ]
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
416171205 + 1 + 1 + 1 谢谢指教!

总评分: 学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-5 21:44