2016-11-21 81 views
-1

我有兩個列表。第一(列表1)由126項,其中的每一個與13個變量的240個觀察,像這樣一個數據幀:減去具有不同數據結構的列表

List1   Large List (126 elements, 3.2 Mb) 
:'data.frame': 240 obs. of 13 variables 
..$X1: num [1:240] 1.5 2.3 6.4 3.3 ... 
..$X2: num [1:240] 3.8 9.4 0.4 6.4 ... 
................................................. 
:'data.frame': 240 obs. of 13 variables 
..$X1: num [1:240] 2.6 0.9 0.5 3.7 ... 
..$X2: num [1:240] 4.9 5.5 5.6 3.1 ... 
................................................. 

列表2還包括126項,但是這一次是僅有1個觀察13個變量的,如下所示:

List2   List of 126 
: num[1, 1:13] 5.5 4.2 6.3 9.2 ... 
: num[1, 1:13] 2.1 1.4 7.7 3.9 ... 
................................................. 

我只是試圖從List1中減去List2。換句話說,我想從List1的每個元素中的所有240行中減去List2的每個元素中的13個數字。這應該給我一個列表中的126個新項目,其中有240個觀察值是13個變量。

我曾嘗試:

ANOM=Map(function(x,y) x-y, List1, List2) 

這個工作,但它沒有給出正確的結果,因爲它不從列表1中正確列刪除列表2正確列。有沒有簡單的我可能在這裏做錯了?

+0

我想你聽說過有關如何重現的例子是有幫助這個網站,但這裏的另一個參考反正:http://stackoverflow.com/questions/5963269/how-to-make-a-great- r-reproducible-example/28481250#28481250 – Frank

+0

道歉。我試圖讓這個問題儘可能清楚,但發現很困難。我會刪除我認爲的問題。 –

+0

我認爲這個問題是一個體面的問題,但是您需要從List1_中澄清_subtract List2的含義。你是指'list(List1 [[1]] --List2 [[0]],List1 [[2]] - List2 [[2]],...,List1 [[126]] - List2 [ 126]])'?或'List2中的每一行List1 [1] - 行...'?還分享一些虛擬數據。 – Abdou

回答

0

看看這個可以嗎?

list3=list() 
for(i in 1:length(list1))list3[[i]]=list1[[i]]-rep(1,240)%*%list2[[i]] 
str(list3) 
+0

感謝您的評論 - 不幸的是,這將返回與我在示例中概述的地圖功能完全相同的輸出。 –

+0

嘗試編輯並查看它是否有效? – Robert

+0

感謝@羅伯特 - 這個解決方案能做到這一點。我想重複第二個列表是必要的,以使列表由同樣結構化的數據框組成。 –

相關問題