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

Average of two columns (both not presenting NA's) conditional over a time period

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

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

其次,我只需要对 1960-2000 年范围内的年份进行估计,即应排除任何低于或高于这些年份的观测值。

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

!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)