首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >删除R中的特定行

删除R中的特定行
EN

Stack Overflow用户
提问于 2016-02-08 23:56:22
回答 1查看 320关注 0票数 0

一般来说,我知道如何删除R中的行,但是,对于这个特殊的要求,我不知道如何继续。这里有一个关于我需要对数据做什么的想法:

代码语言:javascript
运行
复制
   ID        MONTH   INCOME
1. 00000012    6        60
2. 00000012    8        65
3. 00000015    12       70
4. 00000025    4        45
5. 00000025    8        60
6. 00000032    6        10
7. 00000035    6        30

对每一栏的快速解释:

ID的前7位数字标识代理。所以,在第一行中,00000012是代理1,最后一个数字是面试号。所以,在第三行,00000015是指1号探员,第5次面试。

月和收入是直接的。

必须做什么

我需要删除所有不包括第二次和第五次面试的ID。

我只需要最大限度的。第二次面试的月份,每个身份证的第五次面试。

所以,如果我正确地清理数据,我会:

代码语言:javascript
运行
复制
   ID        MONTH   INCOME
2. 00000012    8        65
3. 00000015    12       70
6. 00000032    6        10
7. 00000035    6        30

请注意,第4行第5行已经消失,因为第2代理没有第二次面试,第1行已经消失,因为代理1,面试2的月份更长。

我目前的想法是如何做到这一点似乎过于复杂。我想把ID分成两列,一列有前7位数,另一列有最后一位数。然后,循环遍历整个数据,并在每一行上运行另一个循环,以查看与该行对应的ID是否同时具有访谈2和访谈5。如果有,也可以。如果没有,那么我必须删除所有带有该ID的行。

接下来,我要做一件类似的事情来删除非最长月份。

我觉得我可以做上面的事,但是很麻烦。有更好的方法吗?谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-09 00:14:22

你可以这样做:

代码语言:javascript
运行
复制
library(stringi)
Agents <- substr(df$ID,1,nchar(df$ID)-1 )
A2 <- stri_endswith_fixed(df$ID,"2", fixed = T)
A5 <- stri_endswith_fixed(df$ID,"5", fixed = T)
A2and5 <- intersect(Agents[A5], Agents[A2])
df[Agents %in% A2and5,]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35281572

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档