基于其他向量给出的边界的平均间隔 - " R"

时间:2017-07-03 23:31:38

标签: r excel concatenation

请允许我举一个例子。

将以下数据设想为Excel列:

A1=5 | A2=3 | A3=7 | A4=11 | A5=23 | A6=15 | A7=17然后B1=1 | B2=4C1=3 | C2=7

我想创建一个专栏" D"计算列的平均值" A"使用基于B列和C列的标准。因此,在此示例中D1=(Average of A1 to A3)基于B1=1C1=3 ...然后D2=(Average of A4 to A7),基于B2=4C2=7

在Excel上执行此操作的方式是D1 = AVERAGE(INDIRECT(CONCATENATE("A",B1)):INDIRECT(CONCATENATE("A",C1))),当然还有D2 = AVERAGE(INDIRECT(CONCATENATE("A",B2)):INDIRECT(CONCATENATE("A",C2)))

所以D1连接将融合" A"用" 1"因为B1=1和融合" A"用" 3"因为C1=3 与D2相同...... Average(A4:A7)

对于R来说这似乎是不可能的,因为我无法看到如何将数字与列融合以找到特定的单元格,然后将其输入到平均函数以平均特定范围。

我认为回答这个问题会提供许多远远超出这个问题的工具。

修改

谢谢Chi Pak

1 个答案:

答案 0 :(得分:0)

vector个值,例如列A

set.seed(1)
A <- sample(1:100,10)

[1] 66 13 27 38  2 37 82 32 45 55

data.frame个值,例如列BC

df <- data.frame( B = c(1,4), C = c(3,7))

  B C
1 1 3
2 4 7

这有2行2列,列名为BC

要按列AB指定的行计算列C中的平均值,请使用sapply,其中R等效于快{{ {1}}循环。我使用库for中的iter来遍历iterators的行:

data.frame