В целом, наиболее удобная функция для подсчета, сколько жетонов вы имеете каждого типа ?table:
d <- read.table(text="Cat1 Cat2 Cat3
A B A
B A A
A C A
A B A", header=T)
table(d$Cat1)
# A B
# 3 1
Самый удобный способ выполнить table()
для каждого категориальной переменной в наборе данных является использование ?summary.data.frame:
summary(d)
# Cat1 Cat2 Cat3
# A:3 A:1 A:4
# B:1 B:2
# C:1
с другой стороны, если вы хотите, чтобы получить таблицу, которая коллапсирует на все категориальные переменные, вы можете использовать table()
с ?unlist:
table(unlist(d))
# A B C
# 8 3 1
Чтобы понять, что там происходит, то, что нужно понимать, что в R
кадр данных представляет собой особый вид списка: каждая переменная является вектором, а кадр данных представляет собой список векторов одинаковой длины (см , here). Функция unlist()
превращает их в один длинный вектор, конкатенированный от первого до последнего. Обратите внимание, что если вы примете некоторые некатегорические переменные, вам нужно будет исключить те, у которых есть что-то вроде table(unlist(d[,c(<variables to use>)]))
.
«' '' '' в 'Cat1' то же самое, что и' '' '' в 'Cat2', например? То есть, вы хотите считать '' A ''внутри каждой переменной или по всем переменным? – gung
Благодарим за редактирование. Да, пожалуйста, мигрируйте. –
Да «A» в cat1 такой же, как «A» в других переменных. –