全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
1285 6
2013-03-27
问一下比如给你一组数字无序的(1,3,2,5,4),让你给这五个数字分别赋值,比如说1=我,3=你,2=他,5=她,4=它,然后你给排序并得到的结果是用刚才给它赋值的你我他...表示,这个要怎么做,请高手指点,附上命令哦
二维码

扫码加我 拉你入群

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

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

全部回复
2013-3-29 08:48:08
lz是这个意思么,感觉lz这个问题似乎意义不大诶,附上代码:
x<-as.matrix(c(1,3,2,4,5));
f<-function(x){
   switch(x,"你","我","他","她","它");
}
y<-apply(x,1,f);
dimnames(x)<-list(y,1);
z<-as.matrix(sort(x[,1]));
rownames(z);
希望对你有用。
二维码

扫码加我 拉你入群

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

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

2013-3-29 09:39:43
同意楼上,不过从rownames里面提取变量有点烦吧。不如直接用data.frame好了。

data=c(1,3,2,4,5)
mswi=function(x){
   switch(x,"你","我","他","她","它")
}
name=sapply(data,mswi)
result=as.data.frame(cbind(data,name))[order(data),]

这样result就是排序的data frame, 第一列是原来的data,第二列是赋值后的。
二维码

扫码加我 拉你入群

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

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

2013-3-30 21:14:21
如果结果不要求存入数据框的话,只需简单的向量操作即可实现
a=c(1,3,2,4,5)
names(a)=c('你','我','他','她','它')
b=names(a)[order(a)]                         ## b即是需要的结果向量了。

如果结果要存入数据框,只需将上面最后一句改为:
b=data.frame(fa=sort(a),fb=names(a)[order(a)],row.names=NULL)
二维码

扫码加我 拉你入群

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

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

2013-4-7 15:03:42
多谢啊
二维码

扫码加我 拉你入群

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

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

2013-4-7 15:10:35
各位这个要怎么做啊
附件列表
二维码

扫码加我 拉你入群

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

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

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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