我有很多重复测量的单位
>df
Item value year
1 20 1990
1 20 1991
2 30 1990
2 15 1990
2 5 1991
3 10 1991
4 15 1990
5 10 1991
5 5 1991
Run Code Online (Sandbox Code Playgroud)
我试图使用dplyr删除具有较少观察数的值.在这个玩具数据上可以说我想删除少于2个计数的数据
>df <- df %>%
group_by(Item) %>%
tally() %>%
filter(n>1)
Item n
1 2
2 3
5 2
Run Code Online (Sandbox Code Playgroud)
问题是我希望将其扩展回原来的状态,但是使用此过滤器.我试图使用该ungroup命令,但这似乎只有在按两个变量分组时才有效.我如何通过项目计数过滤然后让我原来的变量后面即value和year.它看起来应该是这样的
>df
Item value year
1 20 1990
1 20 1991
2 30 1990
2 15 1990
2 5 1991
5 10 1991
5 5 1991
Run Code Online (Sandbox Code Playgroud)
r.b*_*bot 14
更简单地说,使用dplyr的row_number()
library(dplyr)
df <- read.table("clipboard", header = TRUE, stringsAsFactors = FALSE)
df %>%
group_by(Item) %>%
filter(max(row_number()) > 1) %>%
ungroup()
# A tibble: 7 x 3
# Groups: Item [3]
Item value year
<int> <int> <int>
1 1 20 1990
2 1 20 1991
3 2 30 1990
4 2 15 1990
5 2 5 1991
6 5 10 1991
7 5 5 1991
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
18251 次 |
| 最近记录: |