楼主: sunziyue
5716 4

[问答] 请问r中如何判断重复项啊? [推广有奖]

  • 0关注
  • 0粉丝

初中生

28%

还不是VIP/贵宾

-

威望
0
论坛币
7 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
140 点
帖子
13
精华
0
在线时间
8 小时
注册时间
2017-11-21
最后登录
2018-4-8

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
是这样的,假设现在有两列一万行的数据,一行是许多不同的车牌号,一行是时间。
而我要做的,是把同一个车牌号出现最早的那一行标注为0,剩下的几个标注为1,请问应该怎么办?
举个栗子:
列a                 列b               
京xxxx        2015-12-12              0
沪xxxx        2014-xx-xx               0
京xxxx        2016-xx-xx               1
京xxxx        2017-xx-xx               1
。。



以此类推
二维码

扫码加我 拉你入群

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

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

关键词:车牌号 怎么办

沙发
sunziyue 发表于 2017-11-24 15:02:19 |只看作者 |坛友微信交流群
有没有那种神奇的写法能够表达“如果前面没有出现过这个东西,那么你就是0,如果出现过,那么你就是1”

使用道具

藤椅
sunziyue 发表于 2017-11-24 15:55:08 |只看作者 |坛友微信交流群
于是我现在把车牌号排了个序,然后写了个for循环= => for(i in 2:k){
+ if(mydata[,2][i]==a){
+ mydata[,9][i]=1
+ }else{a=mydata[,2][i]
+ mydata[,9][i]=0
+ }
+ }


初始的a是第一行的车牌号,k是总行数

使用道具

板凳
sunziyue 发表于 2017-11-24 15:56:18 |只看作者 |坛友微信交流群
好了成功了= =此贴终结……当然欢迎大家留言更优化的解法,这个因为只有一万行所以浪得起

使用道具

报纸
jiangbeilu 学生认证  发表于 2017-11-25 09:25:08 |只看作者 |坛友微信交流群
将这两列命名为ca,cb
  1. library(dplyr)
  2. mydata %>% group_by(ca) %>% mutate(rank=order(cb))
复制代码

然后把1全部变为0,把大于1的全部变成1就达到了你的要求。
例子如下:
  1. df <- data.frame(ca=c('A','B','A','C'),cb=c(2,1,3,4))
  2. library(dplyr)
  3. df %>% group_by(ca) %>% mutate(myrank=order(cb))
复制代码

使用道具

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

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

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

GMT+8, 2024-4-27 22:40