2016-09-07 74 views
0

我有以下的數據幀:

ID A1 A2 A3 A4  B1  B2  B3  B4 
1 ID1 1 2 1  1  1  1  2  2 
2 ID2 2 2 1  1  2  NA  2  1 
3 ID3 2 2 1  2  1  1  NA  2   
4 ID4 1 1 1  1  1  NA  NA  2   
5 ID5 2 2 1  1  NA  NA  2  NA  
6 ID6 1 1 1  1  2  2  2  2 

我想提取從數據幀會上行A和B的每個組合的具體條件,這些都是條件:

  • PP:值2存在於A型柱+值2存在於B型柱

  • PA:值2存在於A型存在於B型柱柱+值1

  • AP:值1存在於A型柱+值2存在於B型柱

  • AA:值1只存在於A型柱+值1只存在於B型柱

這是我寫的:

A <- colnames(dataframe)[2:5] 
# A = A1, A2, A3 and A4 
B <- colnames(dataframe)[6:9] 
# B = B1, B2, B3 and B4 

for (a in A) { 
    for (b in B) { 
     PP <- dataframe[dataframe$a=='2' & dataframe$b=='2' , ] 
     PA <- dataframe[dataframe$a=='2' & dataframe$b=='1' , ] 
     AP <- dataframe[dataframe$a=='1' & dataframe$b=='2' , ] 
     AA <- dataframe[dataframe$a=='1' & dataframe$b=='1' , ] 
     print(head(PP)) #to have a preview 
    } 
} 

但是新的數據幀是空的,我不明白爲什麼。 理想地,第一for循環(其中a = A1和b = B1)將因此輸出:

PP:

 ID A1 A2 A3 A4 B1 B2 B3 B4 
2 ID2 2 2 1 1 2 NA 2 1 

PA:

ID A1 A2 A3 A4 B1 B2 B3 B4 
3 ID3 2 2 1 2 1 1 NA 2 

AP:

ID A1 A2 A3 A4 B1 B2 B3 B4 
6 ID6 1 1 1 1 2 2 2 2 

AA:

ID A1 A2 A3 A4 B1 B2 B3 B4 
1 ID1 1 2 1 1 1 1 2 2 

我希望有人能幫忙。 謝謝。

回答

1

美元符號提取正在產生問題。它不是用於傳遞dataframe$a中的變量。因爲a不是實際的名稱。您正嘗試將變量名稱傳遞給它。但是,該操作員將查找字面值a列,但找不到它。嘗試dataframe[,a]