R - 将重复项提取到数据框
R - Extracting duplicates to a dataframe
我需要 R 方面的帮助,类似于问题 我希望从包含 2,000 多个条目的数据框中提取重复项。
前 15 行数据如下所示:
run
id
Diff
1
20
0
1
4
1024
1
4
1
1
4
1
1
4
65
1
4
1
1
4
1
1
11
475
1
11
1
1
11
1
2
25
0
2
18
0
2
18
1
2
18
1
2
18
1
我只想提取重复项,即
run
id
Diff
1
4
1024
1
4
1
1
4
1
1
4
65
1
4
1
1
4
1
1
11
475
1
11
1
1
11
1
2
18
0
2
18
1
2
18
1
2
18
1
使用命令
mydata_extract %>% group_by(id) %>% filter(n() > 1)
不提取数据,实际上我得到了返回的完整数据集。我需要更改有关“filter(n() > 1)”的内容吗?我是 R 的初学者。
抱歉,我的数据 table 格式不正确,在预览中看起来没问题!
我还想先按“运行”
对我的数据进行分组
也许在 group_by()
中添加 运行 和 id?
library(dplyr)
df <- tibble::tribble(
~"run", ~"id", ~"Diff",
1, 20, 0,
1, 4, 1024,
1, 4, 1,
1, 4, 1,
1, 4, 65,
1, 4, 1,
1, 4, 1,
1, 11, 4,
1, 11, 1,
1, 11, 1,
2, 25, 0,
2, 18, 0,
2, 18, 1,
2, 18, 1,
2, 18, 1
) %>%
group_by(run, id) %>%
filter(n()>1)
# A tibble: 13 x 3
# Groups: run, id [3]
run id Diff
<dbl> <dbl> <dbl>
1 1 4 1024
2 1 4 1
3 1 4 1
4 1 4 65
5 1 4 1
6 1 4 1
7 1 11 4
8 1 11 1
9 1 11 1
10 2 18 0
11 2 18 1
12 2 18 1
13 2 18 1
您可以添加一个 mutate,看看这个 n()
是如何工作的(计算每组的行数),例如
df %>%
group_by(run, id) %>%
mutate(n = n())
我需要 R 方面的帮助,类似于问题
前 15 行数据如下所示:
run | id | Diff |
---|---|---|
1 | 20 | 0 |
1 | 4 | 1024 |
1 | 4 | 1 |
1 | 4 | 1 |
1 | 4 | 65 |
1 | 4 | 1 |
1 | 4 | 1 |
1 | 11 | 475 |
1 | 11 | 1 |
1 | 11 | 1 |
2 | 25 | 0 |
2 | 18 | 0 |
2 | 18 | 1 |
2 | 18 | 1 |
2 | 18 | 1 |
我只想提取重复项,即
run | id | Diff |
---|---|---|
1 | 4 | 1024 |
1 | 4 | 1 |
1 | 4 | 1 |
1 | 4 | 65 |
1 | 4 | 1 |
1 | 4 | 1 |
1 | 11 | 475 |
1 | 11 | 1 |
1 | 11 | 1 |
2 | 18 | 0 |
2 | 18 | 1 |
2 | 18 | 1 |
2 | 18 | 1 |
使用命令
mydata_extract %>% group_by(id) %>% filter(n() > 1)
不提取数据,实际上我得到了返回的完整数据集。我需要更改有关“filter(n() > 1)”的内容吗?我是 R 的初学者。
抱歉,我的数据 table 格式不正确,在预览中看起来没问题!
我还想先按“运行”
对我的数据进行分组也许在 group_by()
中添加 运行 和 id?
library(dplyr)
df <- tibble::tribble(
~"run", ~"id", ~"Diff",
1, 20, 0,
1, 4, 1024,
1, 4, 1,
1, 4, 1,
1, 4, 65,
1, 4, 1,
1, 4, 1,
1, 11, 4,
1, 11, 1,
1, 11, 1,
2, 25, 0,
2, 18, 0,
2, 18, 1,
2, 18, 1,
2, 18, 1
) %>%
group_by(run, id) %>%
filter(n()>1)
# A tibble: 13 x 3
# Groups: run, id [3]
run id Diff
<dbl> <dbl> <dbl>
1 1 4 1024
2 1 4 1
3 1 4 1
4 1 4 65
5 1 4 1
6 1 4 1
7 1 11 4
8 1 11 1
9 1 11 1
10 2 18 0
11 2 18 1
12 2 18 1
13 2 18 1
您可以添加一个 mutate,看看这个 n()
是如何工作的(计算每组的行数),例如
df %>%
group_by(run, id) %>%
mutate(n = n())