Вы можете изменить значение в ports
на 'others'
, где n <= 2
, а затем сгруппировать и sum
.
library(dplyr)
ports_n %>%
mutate(ports = replace(ports, n <= 2, 'others')) %>%
group_by(ports) %>%
summarise(n = sum(n))
# A tibble: 4 x 2
# ports n
# <chr> <dbl>
#1 Bordeaux 78
#2 Liverpool 45
#3 Nantes 47
#4 others 4
Или используя тот же лог c в базе R:
aggregate(n~ports, transform(ports_n,
ports = replace(ports, n <= 2, 'others')), sum)
data
Считать данные в виде символов.
ports_n <- data.frame(ports, n, stringsAsFactors = FALSE)