使用head(data.frame)时data.frame中的列显示为空,但是使用level(data.frame $ column1)时显示为具有值

时间:2019-02-04 10:27:01

标签: r

我有一个很大的数据框,其中包括站点名称,它们的纬度和经度以及其他数据。当我写head(data.frame)时,带有站点名称的列看起来正确,但是纬度和经度列为空(其中根本没有值)。但是,当我写levels(data.frame$longitude)时,会出现我网站的所有经度值。纬度也会发生同样的问题。

我想知道为什么当我抬头data.frame时这些值不出现,而当我抬高水平时却出现吗?

非常感谢!

1 个答案:

答案 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是一个因素,它将仍然显示所有级别,但是还将显示该列中实际出现的值。