如何使用R检查变量是否是分类变量?

5
我有一个R数据框,其中一些变量是分类变量。例如性别是“男”或“女”,而“是否吸烟”是0或1。其他变量则是连续变量。 我想知道是否有任何方法来确定变量是否是分类变量,并在这种情况下计算其频率。
我认为在我的情况下,一个好的测试是检查变量是否取少于k=4个值。

也许你正在寻找 is.factor 函数? - janos
1
也许你可以尝试类似这样的代码sapply(DF, function(x) !(length(levels(factor(x))) == length(as.character(x)))) - alexis_laz
2
尝试以下操作以了解您的数据:1)使用str(mydata)查看实际数据类型。2)使用table(mydata$variable)查看每个变量的频率。3)另一个选项是使用summary(mydata)来获取有关数据的概括信息。 - marbel
2个回答

5

尽管分类变量应该使用因子,但您可以使用unique在向量x中找到唯一的值,并对它们进行计数:

length(unique(x))

使用此方法时必须小心,因为它还将缺失值 NA 视为唯一值进行计算。这并不总是你想要的。 - Jason Morgan
谢谢你的提示,Jason。但是,只需要将级别从4提高到5就可以了吗? - Donbeo
@Donbeo,没错。任何数量的NA值都将计为一个额外的唯一值。 - Matthew Lundberg

3
您可以使用class(dataframe$variable)来确定数据框中变量的类型以及确定该变量是否为因子。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接