如果值位于一个范围内的两列中并且使用 R 的方向相同,则对行进行计数

Count rows if the values are in two columns within a range and same direction using R

我有一个 table 数据 table 格式。我需要在 R 中执行以下计算。

Table1: 

Cty           Pred      Trend
Adams         -9.193    -15.81
Alexander     -1.143      3.01
Bond           5.95     -14.05
Boone          0.57       3.63
.
.

如果 "Pred" 和 "Trend" 列中的值方向相同(即负或正)并且值在范围内,我需要计算 "Cty" 的数量"Trend" 列中值的 +/- 5%。

感谢任何帮助。

谢谢。

第一个条件检查 Pred 和 Trend 是否在同一方向。

第二个条件检查 Pred 是否在趋势值的 5% 以内。

结果是同时满足两个条件的城市数(假设没有重复的城市名称)。

sum(with(df, ((Pred>0) == (Trend>0)) & (abs((Trend-Pred)/Trend)<=0.05)))