楼主: happyzgr
17128 10

[问答] 求助!如何用R选出连续重复的数据 [推广有奖]

  • 1关注
  • 0粉丝

高中生

10%

还不是VIP/贵宾

-

威望
0
论坛币
2456 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
350 点
帖子
20
精华
0
在线时间
26 小时
注册时间
2010-11-14
最后登录
2021-4-24

相似文件 换一批

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
求助如何选出连续重复的数据!用R来解决。用不用编程序?或者有没有其他软件的建议,谢谢!
例如
       x   y     z
       A  110  1
       A  110  2
       A  111  1
       A  112  1
       A  111  1
       B  113  1
       B  114  1
       B  114  2
       B  115  1
       B  113  1

主要根据y列来选,最后输出 A 110 1,B 114 1。希望能给点思路!
二维码

扫码加我 拉你入群

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

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

关键词:如何用 编程序 有没有 如何 程序 软件

沙发
hugebear 发表于 2015-4-13 11:21:07 |只看作者 |坛友微信交流群
问题好像没说清楚。究竟最后的输出应该是什么? 你所谓的“连续重复”, 是分别对y(“重复”)和z(“连续”)而言的吗?(若如此,则z列也是选择的标准)

使用道具

藤椅
毓闻 学生认证  发表于 2015-4-13 11:50:01 |只看作者 |坛友微信交流群
  1. x <- rep(c("A", "B"), each = 5)
  2. y <- c(110,110,111,112,111,113,114,114,115,113)
  3. z <- c(1,2,1,1,1,1,1,2,1,1)
  4. dat <- data.frame(x=x, y=y, z=z)
  5. dat[-cumsum(rle(dat$y)$lengths), ]
复制代码
已有 2 人评分经验 论坛币 学术水平 热心指数 信用等级 收起 理由
达达娇娇 + 1 + 1 + 1 观点有启发
李会超 + 80 + 20 热心帮助其他会员

总评分: 经验 + 80  论坛币 + 20  学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

使用道具

板凳
happyzgr 发表于 2015-4-13 12:31:54 |只看作者 |坛友微信交流群
hugebear 发表于 2015-4-13 11:21
问题好像没说清楚。究竟最后的输出应该是什么? 你所谓的“连续重复”, 是分别对y(“重复”)和z(“连续”)而 ...
是指针对于y选择,但是最后输出是一整行包括xyz。

使用道具

报纸
dataorz 发表于 2015-4-13 13:40:00 |只看作者 |坛友微信交流群
  1. dat[which(diff(dat$y)==0),]
复制代码
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
happyzgr + 1 + 1 + 1 好的意见建议

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

使用道具

地板
happyzgr 发表于 2015-4-13 15:26:16 |只看作者 |坛友微信交流群
希望可以推及到有大量数据的时候使用,给个思路也行~谢谢各位~

使用道具

7
happyzgr 发表于 2015-4-13 17:20:03 |只看作者 |坛友微信交流群
dataorz 发表于 2015-4-13 13:40
如果y那一列中有非数字项,例如字母。是不是可以删除后再使用你给的code?能跟我说下如何删除么?例如:x                                 y            
18745110280179816       Z_S_On  16:40:09
18745110280179816       Z_S_On  16:40:09
18745110280179816      00000001 16:40:33
18745110280179816      63910241 16:40:34
18745110280179816       Z_T_On  16:42:49
18745110280179816         Z_R_4  16:43:18
18745110280179816         Z_E_R  16:43:40
18745110280179816      63912449 16:43:58
18745110280179816      63912449 16:48:59
18745110280179816      63912449 16:53:59
18745110280179816      63912409 16:54:48

使用道具

8
dataorz 发表于 2015-4-14 10:05:07 |只看作者 |坛友微信交流群
  1. y1 <- as.vector(dat$y)
  2. y2 <- c(y1[-1],paste(y1[length(y1)]," "))
  3. dat[y1==y2,]
复制代码

使用道具

9
happyzgr 发表于 2015-4-14 14:19:51 |只看作者 |坛友微信交流群
dataorz 发表于 2015-4-14 10:05
谢谢大神!那如果字母也有可能有重复的,可是我只想选出数字的,是不是还是先筛一下数据,只留下y里是数字的更好?

使用道具

10
dataorz 发表于 2015-4-14 15:06:09 |只看作者 |坛友微信交流群
aa.jpg 正则表达式,替换非数字

使用道具

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

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

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

GMT+8, 2024-4-27 21:31