2016-08-03 86 views
0

Noob here。我試圖將「xmove1」,「xmove2」和「xmove3」的值傳遞給filter命令。R - 如何傳遞變量的值作爲參數?

xmove1 <- "X3" 
xmove2 <- "X1" 
xmove3 <- "X5" 

xtemp <- filter(fullTable, xmove1 == 1, xmove2 == 2, xmove3 == 3) 

的問題是,不是讀xmove1的價值,它似乎是閱讀它作爲一個字符串 - 「xmove1。」

我也嘗試使用「as.name」,但結果似乎是相同的。

xtemp <- filter(fullTable, as.name(xmove1) == 1, as.name(xmove2) == 2, as.name(xmove3) == 3) 
+0

你能顯示預期輸出的例子嗎?什麼是全表? – DataTx

+0

dplyr用(諷刺檢測)編程是非常有趣的 –

+0

@DataTx該過濾器應該是掃描矩陣中的一個模式的多個排列,其中包含362880個對象,因此給出輸出的具體示例將很困難。目前,輸出只是一個空的數據框,所以任何填充該數據框的答案都可能是正確的答案。 – user2533660

回答

1

如果要動態地提供列名,使用dplyr函數的標準評價方案(見vignette("nse")獲取更多信息)。

可以

filter_(fullTable, .dots=list(
    bquote(.(as.name(xmove1)) == 1), 
    bquote(.(as.name(xmove2)) == 2), 
    bquote(.(as.name(xmove3)) == 3))) 
相關問題