У меня есть данные, которые выглядят так:
id a b c
1 346 BBX BBX RRS
2 677 BBX TFT TFT
3 999 BBX CAT CAT
Что я хочу сделать: для каждой строки найдите значение через a, b, c, которое имеет наибольшее количество совпадений. Таким образом, результат будет выглядеть следующим образом:
id y
1 346 BBX
2 677 TFT
3 999 CAT
Если есть случаи, когда нет столбца с большим количеством совпадений, чем у любого другого, мне безразлично, какое значение выбрано.
Есть предложения?
Я также добился того, чтобы преобразовать данные, как описано ниже, и создать переменную «n» для числа вхождений каждого x. Но не уверен, как «выбрать» x с наибольшим n для каждого идентификатора.
id x n
1 346 BBX 2
2 346 RRS 1
3 677 BBX 1
4 677 TFT 2
5 999 BBX 1
6 999 CAT 2
Вот некоторые данные кода:
id <- c("346", "677", "999")
a <- rep ("BBX", 3)
b <- c("BBX", "TFT", "CAT")
c <- c("RRS", "TFT", "CAT")
x <- data.frame(id, a,b,c, stringsAsFactors=F)
или
id <- c("346", "346", "677", "677", "999", "999")
x <- c("BBX", "RRS", "BBX", "TFT", "BBX", "CAT")
n <- c("2", "1", "1", "2", "1", "2")
bl <- data.frame(id, x, n)
СПАСИБО!