拆分两个相等长度的列表并进行单独计算

时间:2014-08-16 17:24:44

标签: r

我有两个列表

list1 <- list(4,6,7,9, 9,12,14,12)
list2 <- list(7,8,9,10,14,13,12,11)

我需要对每个列表中的每2个元素进行单独计算。即。在两个列表之间添加前两个元素,接下来两个减去,然后乘以下两个,然后按顺序list1[1:2]+list2[1:2], list1[3:4]-list2[3:4], list1[5:6]*list2[5:6], list1[7:8]/list2[7:8]除以最后两个(它给出错误)。预期输出

result <- list(11, 14, -2, -1, 126, 156, 1.16, 1.09) 

1 个答案:

答案 0 :(得分:0)

这是一个使用paste创建表达式然后使用sapply来评估这些表达式的解决方案(如果结果应该是列表,也可以使用lapply)。

list3 <- rep(c("+","-","*","/"), each=2)
sapply(paste(list1, list3, list2), function(x){ eval(parse(text=x)) })

结果:

     4 + 7      6 + 8      7 - 9     9 - 10     9 * 14    12 * 13    14 / 12    12 / 11
 11.000000  14.000000  -2.000000  -1.000000 126.000000 156.000000   1.166667   1.090909