2012-06-29 24 views
0

打印特定列。我需要根據區域列名作爲參數從我有一個數據幀作爲像下面數據幀

>avg_data 
    region SN  value AveElapsed  Runtime 
    beta 1  32  1372   943.668 
    alpha 2  44  1408   966.495 
    beta 3  55  1384   951.091 
    beta 4  60  1390   954.929 
    atp  5  22  1442   924.381 

我需要根據論據採取「AveElapsed」欄或「運行」欄中,從數據幀中提取AveElapsed或運行。

以下命令工作正常。但如何我可以

>avg_data[avg_data$region =="beta", "AveElapsed"] 
    [1] 1372 1408 1384 1390 1442 

但是當我使用功能

newfun(z, h) 
    { 
      avg_data[avg_data$region == z, h] 
    } 

當我調用該函數

newfun(beta, AveElapsed) 

我收到提示這樣的..請指教。

Error in "[.data.frame"(avg_data, avg_data$region == z, h) : 
      object "beta" not found 

而且當我試圖使用像下面它不工作..

M=AveElapsed 
    avg_data[avg_data$region == "beta", M] 
+0

行情。否則R認爲你正在引用一個命名對象。所以,'newfun( 「試用」, 「AveElapsed」)' – BenBarnes

回答

2

這是因爲對象beta不存在。

嘗試這種情況:

newfun("beta", "AveElapsed") 

即通過包含字符串「試用」,而不是一個(不存在)對象稱爲β-的內容的角色對象。 @BenBarnes指出,「AveElapsed」也是如此。需要

+0

大概' 「AveElapsed」',太? – BenBarnes

+0

我試圖使用這樣的方式......這是不工作...請指教...'M = AveElapsed avg_data [avg_data $區域==「測試版」,M]' – Tamilan

+0

@Tamilan請不要這種採取錯誤的方式,因爲它是爲了幫助不被表露無疑:我建議你花一些時間與基礎研發的教程。如果你花一點時間理解數據結構,這些都是非常基本的錯誤。如果你打算這樣做,你應該設置'M < - 「AveElapsed」'。 –

相關問題