【发布时间】:2017-02-28 22:01:59
【问题描述】:
我有一个包含三列的数据集:年份、城市、值,如下所示:
year = c(2010, 2013, 2010, 2013, 2013)
city = c("Berlin","Berlin", "Munich", "Munich", "Frankfurt")
value = c(1234, NA, NA, 6372, NA)
data <- data.frame(year, value1, value2)
year city value
1 2010 Berlin 1234
2 2013 Berlin NA
3 2010 Munich NA
4 2013 Munich 6372
5 2013 Frankfurt NA
我想知道如何对其进行子集化,以便只保留可用的最新数据,最后我会得到如下数据:
year city value
1 2010 Berlin 1234
2 2013 Munich 6372
3 2013 Frankfurt NA
如果我在最高年份进行子集化,我会得到那一年没有数据的 NA。如果我在!is.na() 上设置子集,我会丢失所有only NA 可用的行。
我特别想做的是获取给定城市的数据最高年份,除非该城市只有 NA,然后是 NA 最高的年份。我该怎么办?
【问题讨论】:
-
您到底想对什么进行子集化?从您的示例来看,您似乎不想对最高年份进行子集化,是否还有其他变量未在此处显示?
-
啊,不:我想为城市列子集:给定城市数据的最高年份,除非该城市只有 NA,然后是 NA 最高的年份。是不是更清楚了?