У меня есть большой набор данных (датафрейм), в котором я хочу найти номер и названия моих картограмм в столбце.
Например, мой df был такой:
A B
1 car
2 car
3 bus
4 car
5 plane
6 plane
7 plane
8 plane
9 plane
10 train
Я хотел бы найти:
car
bus
plane
train
4
Как бы я это сделал?
5 ответов
categories <- unique(yourDataFrame$yourColumn)
numberOfCategories <- length(categories)
Довольно безболезненно.
Кроме того, для просмотра отсортированных значений вы можете использовать следующее:
sort(table(df$B), decreasing = TRUE)
И вы увидите значения в порядке убывания.
Вы можете просто использовать уникальные:
x <- unique(df$B)
И он будет извлекать уникальные значения в столбце. Вы можете использовать его с apply, чтобы получить их из каждого столбца!
Я бы порекомендовал вам использовать здесь факторы, если вы еще этого не сделали. Это просто и понятно.
levels()
дает уникальные категории, а nlevels()
- их количество. Если мы сначала запустим droplevels()
для данных, мы позаботимся о любых уровнях, которых больше нет в данных.
with(droplevels(df), list(levels = levels(B), nlevels = nlevels(B)))
# $levels
# [1] "bus" "car" "plane" "train"
#
# $nlevels
# [1] 4
Это дает уникальную, уникальную длину и частоту:
table(df$B)
bus car plane train
1 3 5 1
length(table(x$B))
[1] 4
Новые вопросы
r
R - это бесплатный язык программирования с открытым исходным кодом и программная среда для статистических вычислений, биоинформатики, визуализации и общих вычислений. Пожалуйста, предоставьте минимальные и воспроизводимые примеры вместе с желаемым результатом. Используйте dput () для данных и укажите все небазовые пакеты с вызовами library (). Не вставляйте изображения для данных или кода, вместо этого используйте блоки кода с отступом. По вопросам, связанным со статистикой, используйте https://stats.stackexchange.com.