在一段时间内有条件的两列(均未呈现NA)的平均值

时间:2015-11-12 08:22:31

标签: r conditional mean

我正在尝试获取数据框中特定变量(以列表示)的描述性统计信息。我有兴趣获得两个变量(polindex和log(gdp))的均值和标准差,但我有两个限制。

首先,我需要对polindex和log(gdp)同时包含数据的情况进行估算 (即我需要在任何时候排除两个变量的观察值或者他们两个出现了NA)。这是为了在两个估计中具有相同的观测基数。

其次,我只需要在1960-2000的范围内进行估算,也就是说,应该排除低于或高于这些年份的观察值。

enter image description here

1 个答案:

答案 0 :(得分:2)

您可以对原始数据框进行子集化,并仅使用符合以下条件的行:

!is.na(df$polindex) is TRUE
!is.na(df$log.gdp) is TRUE
df$year >= 1960 & df$year <= 2000 is TRUE

以下是您可以用来计算polindex的平均值的代码:

pol.index  <- !is.na(df$polindex)
log.index  <- !is.na(df$log.gdp)
year.index <- df$year >= 1960 & df$year <= 2000

pol.mean   <- mean(df[pol.index & log.index & year.index, "polindex"], na.rm=TRUE)