首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >根据个人的价值范围删除个人

根据个人的价值范围删除个人
EN

Stack Overflow用户
提问于 2014-07-09 15:20:32
回答 2查看 49关注 0票数 0

我有一个有两个变量的df,一个有I,另一个有一个名为numbers的变量。我想对那些不以数字1开始他们的数字序列的人进行训斥。

我已经通过创建一个二进制指示符来做到这一点,并且排除了这个人是否有这个指示符。但是,必须有一个更简单、更优雅的方法来做到这一点吗?

示例数据和用于实现预期结果的代码如下所示。

谢谢。

样本df:

代码语言:javascript
复制
zz<-"    names numbers
1   john       1
2   john       2
3   john       3
4   john       4
5   john       5
6   john       6
7   john       7
8   john       8
9   mary       4
10  mary       5
11  mary       6
12  mary       7
13  mary       8
14  mary       9
15  mary      10
16  mary      11
17  mary      12
18   pat       1
19   pat       2
20   pat       3
21   pat       4
22   pat       5
23   pat       6
24   pat       7
25   pat       8
26   pat       9
27   pat      10
28   sue       2
29   sue       3
30   sue       4
31   sue       5
32   sue       6
33   sue       7
34   sue       8
35   sue       9
36   tom       5
37   tom       6
38   tom       7
39   tom       8
40   tom       9
41   tom      10
42   tom      11
"

Data <- read.table(text=zz, header = TRUE)

步骤1-添加二进制指示符

代码语言:javascript
复制
df$all<-ifelse(df$numbers==1, 1,0)
df$allperson<-ave(df$all, df$names, FUN=cumsum)

第二步-摆脱那些没有1作为起始号码的人

代码语言:javascript
复制
df[!df$allperson==0,]
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-07-09 16:06:02

如果您想要优雅,我必须推荐dplyr

代码语言:javascript
复制
library(dplyr)

Data %>%
  group_by(names) %>%
  filter(min(numbers) != 1)

它意味着它似乎意味着:仅在一个组(由names定义)的最小numbers值等于1的情况下,筛选记录。

代码语言:javascript
复制
   names numbers
1   mary       4
2   mary       5
3   mary       6
4   mary       7
5   mary       8
6   mary       9
7   mary      10
8   mary      11
9   mary      12
10   sue       2
11   sue       3
票数 1
EN

Stack Overflow用户

发布于 2014-07-09 16:57:11

你也可以尝试:

代码语言:javascript
复制
zz1 <-  zz[with(zz, names %in% unique(names)[!!table(zz)[,1]]),]
head(zz1,4)
 #   names numbers
 #1   john       1
 #2   john       2
 #3   john       3
 #4   john       4
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24657584

复制
相关文章

相似问题

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