我有一个这种形式的数据集。
a=data.frame(A=1:5,B=1:5,matrix(seq(50),nrow = 5))
colnames(a)<-c("A","B", paste0(1:10))
A B 1 2 3 4 5 6 7 8 9 10
1 1 1 6 11 16 21 26 31 36 41 46
2 2 2 7 12 17 22 27 32 37 42 47
3 3 3 8 13 18 23 28 33 38 43 48
4 4 4 9 14 19 24 29 34 39 44 49
5 5 5 10 15 20 25 30 35 40 45 50
我打算使用 apply 来有条件地将行的乘积与 A 和 B 的值相乘。让我们以第 2 行为例,我们有 A=2 和 B=2 然后代码将寻找 column="2 " 和 column="2+2" 并将对所选向量的所有元素进行乘积,因此结果等于 7*12*17=1248。我可以连续做
prod(a[1,match(a$A[1],colnames(a)):match(a$A[1]+a$B[1],colnames(a))])
但无法想出将其应用于所有data.frame的方法。有什么帮助吗?