是否有一种简单的方法可以在列表中进行简单的计算?R列表中的两个列表的总和
x <- list(a=list(1:4),b=list(1:6))
y <- list(a=list(1:4),b=list(1:6))
当我尝试:
x+y
我收到错误: 错误X + Y:非数字参数二元运算
X和Y是相同的长度,并且含有只有整数。用矩阵可以做y + x,有没有办法做到这一点与清单列表?
是否有一种简单的方法可以在列表中进行简单的计算?R列表中的两个列表的总和
x <- list(a=list(1:4),b=list(1:6))
y <- list(a=list(1:4),b=list(1:6))
当我尝试:
x+y
我收到错误: 错误X + Y:非数字参数二元运算
X和Y是相同的长度,并且含有只有整数。用矩阵可以做y + x,有没有办法做到这一点与清单列表?
您可以使用lapply
同时通过每2名列表。
lapply(seq_along(x),function(i)
unlist(x[i])+unlist(y[i]))
[[1]]
a1 a2 a3 a4
2 4 6 8
[[2]]
b1 b2 b3 b4 b5 b6
2 4 6 8 10 12
如果X和Y不具有相同的长度,你可以这样做:
lapply(seq_len(min(length(x),length(y)),function(i)
unlist(x[i])+unlist(y[i]))
只需用 “+” 不是'list'实现。这是因为'list'可以包含任何R对象。因此,没有不明确的方式来添加“list”的元素。 – 2013-03-07 14:42:46