如何计算数据框中数据点的出现次数?

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"