返回r中特定国家/地区的值为NA的年份

时间:2018-06-15 18:56:28

标签: r

我是R的新手,无法找到解决方案。 我有一个包含国家代码,值和年份(面板数据)的数据集 “价值”栏有很多新闻。 对于每个国家,我想获得一个值为NA的年份列表。 使用dplyr函数可以实现吗?这是我的数据集的快照 Country codes, Years and Values

3 个答案:

答案 0 :(得分:1)

你是说这个意思吗?

DAT = read.table(text="Country.Code  Year  Value
UKR            2006  NA
UKR           2007  NA
UKR           2008  2000
ARE           2006   NA
ARE           2007   NA",
header=TRUE)

DAT[is.na(DAT$Value), 1:2]
  Country.Code Year
1          UKR 2006
2          UKR 2007
4          ARE 2006
5          ARE 2007

加成

要在一行中获得一个国家/地区的所有年份,您可以使用

temp = DAT[is.na(DAT$Value), 1:2]
aggregate(temp$Year, list(temp$Country.Code), paste, collapse=",")
  Group.1         x
1     ARE 2006,2007
2     UKR 2006,2007

答案 1 :(得分:1)

使用which函数:

<强> DF [is.na(其(DF $值)),]

答案 2 :(得分:1)

制作测试用例:

df <- read.table(text="Country  Year Value
UKR            2006  NA
UKR           2007  NA
UKR           2008  2000
ARE           2006   NA
ARE           2007   NA", header=TRUE)
  

对于每个国家/地区,请获取值为NA

的年份列表
lapply(split(df, df["Country"]), function(x) x$Year[is.na(x$Value)])
# or equivalent but more readable
with(subset(df, is.na(Value)), split(Year, Country))

输出:

$ARE
[1] 2006 2007

$UKR
[1] 2006 2007

这是你需要的吗?