是否有一種簡單的方法可以在列表中進行簡單的計算?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