楼主: 风荷清圆
27682 8

[问答] R语言中如何按照数据某列因子,将另一列数据按其排序 [推广有奖]

  • 1关注
  • 0粉丝

初中生

71%

还不是VIP/贵宾

-

威望
0
论坛币
108 个
通用积分
1.3000
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
1471 点
帖子
8
精华
0
在线时间
28 小时
注册时间
2015-8-20
最后登录
2022-10-21

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
例如有数据data
>data
class  height  weight
  1       12      3.6
  1       16      4.3
  1       15      4.7
  2       24      6.3
  2       17      2.4
  2       20      3.8
  3       11      5.5
  3       15      4.4
  3       10      2.2
现在我需要将height这一列中的值,按照第一列class的分类来排序,也就是class=1时,将三个height列的值排序,class=2,3....以此类推,且其他列保持不变,效果如下
class  height  weight
  1       12      3.6
  1       15      4.7
  1       16      4.3
  2       17      2.4
  2       20      3.8
  2       24      6.3
  3       10      2.2
  3       11      5.5
  3       15      4.4



求教这个要如何实现


二维码

扫码加我 拉你入群

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

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

关键词:R语言 Weight Eight weigh Data 如何

回帖推荐

ihuobaby 发表于6楼  查看完整内容

jiangbeilu 发表于3楼  查看完整内容

这行代码对你应该有帮助
沙发
yms0420 发表于 2015-10-30 13:01:36 |只看作者 |坛友微信交流群
library(plyr)   #载入plyr 包,使用ddply
ddply(data, "class", summarise, sort(height))

使用道具

藤椅
jiangbeilu 学生认证  发表于 2015-10-30 13:02:17 |只看作者 |坛友微信交流群
  1. data[order(data$class,data$height),]
复制代码


这行代码对你应该有帮助

使用道具

板凳
风荷清圆 发表于 2015-10-30 14:23:40 |只看作者 |坛友微信交流群
yms0420 发表于 2015-10-30 13:01
library(plyr)   #载入plyr 包,使用ddply
ddply(data, "class", summarise, sort(height))
排序之后,其他列要如何保留呢?

使用道具

报纸
风荷清圆 发表于 2015-10-30 14:30:47 |只看作者 |坛友微信交流群
jiangbeilu 发表于 2015-10-30 13:02
这行代码对你应该有帮助
感谢您,帮了大忙了

使用道具

地板
ihuobaby 发表于 2015-10-30 14:32:55 |只看作者 |坛友微信交流群
  1. library("dplyr")

  2. data <- data.frame(
  3.   class=c(1, 1, 1, 2, 2, 2, 3, 3, 3),
  4.   height=c(12, 16, 15, 24, 17, 20, 11, 15, 20),
  5.   weight=c(3.6, 4.3, 4.7, 6.3, 2.4, 3.8, 5.5, 4.4, 2.2)
  6. )

  7. data %>%
  8.   group_by(class) %>%
  9.   arrange(height)
复制代码
已有 1 人评分经验 收起 理由
李会超 + 40 精彩帖子

总评分: 经验 + 40   查看全部评分

使用道具

7
ihuobaby 发表于 2015-10-30 14:40:10 |只看作者 |坛友微信交流群
ihuobaby 发表于 2015-10-30 14:32
或者
  1. data %>%
  2.   arrange(class, height)
复制代码

使用道具

8
风荷清圆 发表于 2015-10-30 14:57:43 |只看作者 |坛友微信交流群
ihuobaby 发表于 2015-10-30 14:32
感谢您的回答,受教了

使用道具

9
葡萄逃 发表于 2017-7-6 17:38:07 |只看作者 |坛友微信交流群
ihuobaby 发表于 2015-10-30 14:32
如果需要排序的数据很多呢,总不能一个个输入来吧

使用道具

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

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-6-8 15:40