【发布时间】:2011-06-19 07:37:13
【问题描述】:
在数据框中选择行然后对其进行排序这一看似微不足道的任务让我难以理解,同时也让我发疯。例如,让我们有一个简单的数据框:
country = c("US", "US", "CA", "US")
company = c("Apple", "Google", "RIM", "MS")
vals = c(100, 70, 50, 90)
df <- data.frame(country, company, vals)
让我们按 vals 排序
> df[order(vals),]
country company vals
3 CA RIM 50
2 US Google 70
4 US MS 90
1 US Apple 100
完美运行。现在让我们尝试只选择美国公司,并在那里订购价值。我们得到了一些虚假的结果。
> df[country=="US", ][order(vals),]
country company vals
4 US MS 90
2 US Google 70
NA <NA> <NA> NA
1 US Apple 100
让我们订购,然后选择。又是一个虚假的结果
> df[order(vals),][country=="US", ]
country company vals
3 CA RIM 50
2 US Google 70
1 US Apple 100
如何获取数据框,仅包含美国公司,并按 val 排序?
【问题讨论】:
-
在开始执行此操作之前删除用于创建
df的变量,因为这些变量将被发现而不是df中的变量。这并不能解决问题,但会有所帮助......