количество переменных, которые повторяются 2 или более раз в R - PullRequest
1 голос
/ 06 октября 2019

У меня есть две формы данных: list (т. Е. r) и data.frame (т. Е. df). Для каждой формы данных, как я могу узнать количество переменных, которые повторяются 2 или более раз (в приведенном ниже примере мой желаемый результат :AA 3 times, BB 2 times, CC 2 times)?

ПРИМЕЧАНИЕ: ответ, независимо от формы данных, должен быть одинаковым.

r <- list( data.frame( AA = c(2,2,1,1,NA, NA), BB = c(1,1,1,2,2,NA), CC = c(1:5, NA)), # LIST

        data.frame( AA = c(1,NA,3,1,NA,NA), DD = c(1,1,1,2,NA,NA)),

        data.frame( AA = c(1,NA,3,1,NA,NA), BB = c(1,1,1,2,2,NA), CC = c(0:4, NA)) )


df <- do.call(cbind, r)       ## DATA.FRAME

1 Ответ

1 голос
/ 06 октября 2019

Мы можем создать подсчет частоты с помощью >= 2 для names набора данных,

tbl <- table(names(df))
tbl1 <- tbl[tbl >=2]
tbl1
#  AA BB CC 
#  3  2  2 

lapply(r, function(x) table(names(x)[names(x) %in% names(tbl1)]))

Если он нам нужен из другого ответа

vec <- names(unlist(r, recursive = FALSE))
nm1 <- unique(vec[duplicated(vec)])
lapply(r, function(x) table(names(x)[names(x) %in% nm1]))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...