如果值在使用R的范围和相同方向内的两列中计数行

时间:2018-05-21 18:30:05

标签: r count range direction

我有一个数据表格式的表。我需要在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”列中的值在同一方向(即负数或正数)且值在值的+/- 5%范围内,我需要计算“Cty”的数量在“趋势”列中。

感谢任何帮助。

感谢。

1 个答案:

答案 0 :(得分:0)

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

第二个条件检查Pred在趋势值的5%范围内。

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

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