R获取列中的所有类别

R get all categories in column

我有一个大型数据集(数据框),我想在其中的一列中查找我的分类的编号和名称。

例如我的 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

我该怎么做?

您可以简单地使用 unique:

x <- unique(df$B)

它会提取列中的唯一值。您也可以将它与 apply 一起使用以从每一列中获取它们!

categories <- unique(yourDataFrame$yourColumn) 
numberOfCategories <- length(categories)

非常无痛。

这给出了唯一性、唯一性长度和频率:

table(df$B)
bus   car plane train 
1     3     5     1

length(table(x$B))
[1] 4

我建议你在这里使用因子,如果你还没有的话。它简单明了。

levels() 给出了独特的类别,nlevels() 给出了它们的数量。如果我们 运行 droplevels() 首先处理数据,我们会处理可能不再存在于数据中的任何级别。

with(droplevels(df), list(levels = levels(B), nlevels = nlevels(B)))
# $levels
# [1] "bus"   "car"   "plane" "train"
#
# $nlevels
# [1] 4

此外,要查看排序后的值,您可以使用以下命令:

sort(table(df$B), decreasing = TRUE)

您会看到这些值按降序排列。

首先,您必须确保列的数据类型正确。很可能 R 已将其作为“chr”读取,您可以使用“str(df)”进行检查。 对于您作为示例提供的数据,您需要将其更改为“因子”。 df$ 列 <- as.factor(df$ 列) 一旦数据格式正确,您就可以使用“levels(df$column)”来获取数据集中级别的摘要