我有两个列表
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)
答案 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