Вы можете легко рассчитать частоту V2 (в l2) с помощью функции count()
из библиотеки dplyr .
library(dplyr)
count(l2, V2)
# V2 n
# 1 A1 2
# 2 C 1
# 3 D 1
# 4 E1 2
Затем преобразуйте l1
в кадр данных и объедините его с результатом подсчета, чтобы сохранить все уровни в l1
:
l1 <- c("A1", "A2", "B-1", "C", "D", "E1")
left_join(data.frame(V2 = l1), count(l2, V2), by = 'V2')
# V2 n
# 1 A1 2
# 2 A2 NA
# 3 B-1 NA
# 4 C 1
# 5 D 1
# 6 E1 2
Затем вы можете разделить число наблюдений (в данном случае 6), чтобы вычислить пропорцию, и вы можете построить гистограмму (например, с ggplot2 или с barplot()
, если хотите).
library(ggplot2)
left_join(data.frame(V2 = l1), count(l2, V2), by = 'V2') %>%
ggplot(aes(x = V2, y = n)) +
geom_col()