如何计算数据框中数据点的出现次数?
How do I count the ocurrence of a data point in a data frame?
我有这个 table 并且我只想保留和计算字符串 A 和 D 最常出现的 ID。例如,A 和 D 在 ID“abc”中比在“hil”Id 中更常见。
string
id
start
end
A
abc
0
1
A
abc
2
3
B
efg
1
3
A
hil
5
6
A
abc
6
7
D
abc
7
8
D
abc
1
2
D
hil
3
4
如何获取最能代表这些字符串的 ID?
您可以使用此代码:
df %>%
filter(string == "A" | string == "D") %>%
group_by(id) %>%
count(id) %>%
arrange() %>%
ungroup() %>%
slice(1)
输出:
# A tibble: 1 × 2
id n
<chr> <int>
1 abc 5
在 base R 中,您可以像这样为每个 string
获得最常见的 id
:
apply(table(df$id, df$string), 2, function(x) {
rownames(table(df$id, df$string))[which.max(x)] })
#> A B D
#> "abc" "efg" "abc"
我有这个 table 并且我只想保留和计算字符串 A 和 D 最常出现的 ID。例如,A 和 D 在 ID“abc”中比在“hil”Id 中更常见。
string | id | start | end |
---|---|---|---|
A | abc | 0 | 1 |
A | abc | 2 | 3 |
B | efg | 1 | 3 |
A | hil | 5 | 6 |
A | abc | 6 | 7 |
D | abc | 7 | 8 |
D | abc | 1 | 2 |
D | hil | 3 | 4 |
如何获取最能代表这些字符串的 ID?
您可以使用此代码:
df %>%
filter(string == "A" | string == "D") %>%
group_by(id) %>%
count(id) %>%
arrange() %>%
ungroup() %>%
slice(1)
输出:
# A tibble: 1 × 2
id n
<chr> <int>
1 abc 5
在 base R 中,您可以像这样为每个 string
获得最常见的 id
:
apply(table(df$id, df$string), 2, function(x) {
rownames(table(df$id, df$string))[which.max(x)] })
#> A B D
#> "abc" "efg" "abc"