我有一个很大的数据框,其中包括站点名称,它们的纬度和经度以及其他数据。当我写head(data.frame)
时,带有站点名称的列看起来正确,但是纬度和经度列为空(其中根本没有值)。但是,当我写levels(data.frame$longitude)
时,会出现我网站的所有经度值。纬度也会发生同样的问题。
我想知道为什么当我抬头data.frame
时这些值不出现,而当我抬高水平时却出现吗?
非常感谢!
答案 0 :(得分:0)
levels()
返回与因子关联的级别。并非所有值都必须存在。例如,如果您这样做
x <- factor(letters)
x[1:3]
您会看到
[1] a b c
Levels: a b c d e f g h i j k l m n o p q r s t u v w x y z
因为所有26个水平仍与该因素相关,即使仅观察到3个水平。
在您的情况下,您的因子水平之一可能是空白字符串。您可以使用
x <- factor("", levels = c("", letters))
或读取某些列中包含空白的数据。
要找出列中的所有值,请不要使用levels(x)
,而要使用unique(x)
。如果x
是一个因素,它将仍然显示所有级别,但是还将显示该列中实际出现的值。