2012-06-29 25 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”'。 –

相关问题