4380 10

[问答] R语言去重,且保留最后一条观测 [推广有奖]

  • 0关注
  • 0粉丝

已卖:2份资源

高中生

95%

还不是VIP/贵宾

-

威望
0
论坛币
1000 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
1491 点
帖子
26
精华
0
在线时间
31 小时
注册时间
2011-10-19
最后登录
2024-10-25

楼主
瞬间失去回忆 在职认证  发表于 2017-8-25 16:27:52 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
现有数据集A<-data.frame(M=c("001","002","003","002","001"),N=c("a","b","c","b","a"),S =c(1,2,3,4,5));对数据集A的M,N变量去重,且保留S的最后一条观测,使得到数据集为B<-data.frame(M=c("003","002","001"),N=c("c","b","a"),S =c(3,4,5));请问怎么弄?求各位大侠帮帮忙
二维码

扫码加我 拉你入群

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

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

关键词:R语言 数据集

沙发
都_城 发表于 2017-8-25 17:52:35
从后往前去重就可以了
A[!duplicated(A$M,fromLast = T),]

藤椅
Python-R-Go 发表于 2017-8-25 18:18:24
mark一下,回头看看有什么好的处理方法

板凳
小朝 发表于 2017-8-25 19:08:23
  1. library(dplyr)
  2. A <- data.frame(M=c("001","002","003","002","001"),N=c("a","b","c","b","a"),S =c(1,2,3,4,5))
  3. B <- A %>% group_by(M,N) %>% slice(n())
  4. B
复制代码

报纸
ck9532 发表于 2017-8-25 21:36:53 来自手机
先建一个新的行把M和N和起来,再用duplicated function, 从后往前去行.
还有一个办法就是用dplyr 里面的group_by 和 slice function.

B <- A %>% group_by(M, N) %>% slice(n())

地板
johnsonchen14 学生认证  发表于 2017-8-25 22:12:59
都_城 发表于 2017-8-25 17:52
从后往前去重就可以了
A[!duplicated(A$M,fromLast = T),]
超级简便,赞一个

7
Tony_Liu 在职认证  发表于 2017-8-26 09:20:41
都_城 发表于 2017-8-25 17:52
从后往前去重就可以了
A[!duplicated(A$M,fromLast = T),]
厉害!学习了

8
Tony_Liu 在职认证  发表于 2017-8-26 09:20:45
都_城 发表于 2017-8-25 17:52
从后往前去重就可以了
A[!duplicated(A$M,fromLast = T),]
厉害!学习了

9
瞬间失去回忆 在职认证  发表于 2017-8-26 21:08:22
瞬间发现都是牛人啊

10
瞬间失去回忆 在职认证  发表于 2017-8-26 21:16:02
都_城 发表于 2017-8-25 17:52
从后往前去重就可以了
A[!duplicated(A$M,fromLast = T),]
这个必须MN满足同时重复,你这条少了N

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-20 03:42