2017-09-28 84 views
0

我有一個數據框,需要子集。 實例數據框 -在R中的子集數據中使用變量名稱

x   y    z   p   q 
US   23    boy   34  45.6 
EU   45    girl  27  24.67 
US   23    boy   36  75.6 
EU   45    girl  26  74.67 

我明白,它可以這樣做 -

subset(dataFrame, x == 'US') 

現在,我有一個用例在那裏我有過數據幀被應用組合的列表。 dataFrame包含5列 - x,y,z,p,q 組合作爲數據幀 - x = US,y = 23,z = boy 2. x = EU,y = 34,z =女孩

現在,這些組合可以是任何數字,同樣我們可以有一個更大的數據集。 所以,我試圖做 - 示例數據集中 -

x   y    z 
US   23    boy 
EU   45    girl 

組合是我的組合數據幀。

comboNames = names(combo) 
subset(dataFrames, comboName[1] == lapply(combo[,1], as.character)[[1]]) 

這給了我0結果。 但是,如果我這樣做 -

subset(dataFrames, x == lapply(combo[,1], as.character)[[1]]) 

它的工作原理。 是否可以將此鍵x表示爲一個變量來提取數據。 希望我能夠很好地解釋我的問題。預先感謝所有的幫助。

+0

請包括例如輸入和輸出數據使用'dput()' – Jimbou

+1

這不是很清楚你的問題在問什麼。也許你可以提供一些樣本數據和預期的輸出? – useR

+0

添加示例。 – Prakhar

回答

0

comboName只包含名稱(不參考數據框)。所以你從comboName [1]得到的「x」不像第二種方法中的x那樣被引用。 這應該工作:

subset(dataframes, get(comboNames[1]) == lapply(combo[,1], as.character)[[1]]) 

我希望這是你在找什麼...

乾杯

+0

這正是我所期待的。非常感謝。 – Prakhar

相關問題