【问题标题】:"self"-variable for easy referencing in R?“自我”-变量以便在 R 中轻松引用?
【发布时间】:2013-04-15 12:34:09
【问题描述】:

我只想显示具有长变量名的数组的一部分。到目前为止我用过:

# Data
k0100_m020_r05_h10000__aea000_aee0$cumsumData = c(-1:10)

# show only parts
k0100_m020_r05_h10000__aea000_aee0$cumsumData[k0100_m020_r05_h10000__aea000_aee0$cumsumData>0]

我想知道是否有更短的形式,因为我必须在方括号内重复变量名。 是否对当前使用的变量有更短的引用? 例如:

k0100_m020_r05_h10000__aea000_aee0$cumsumData[_self>0]

【问题讨论】:

  • 你为什么不调用数组(它真的是一个数组还是你的意思是一个数据框,因为据我所知$ 运算符不适用于矩阵/数组)其他名称短的东西?例如mydat <- k0100_m020_r05_h10000__aea000_aee0,然后是mydat[mydat$cumsumData > 0 , ]
  • 我想调用没有辅助变量的数组。您拥有的变量越多,源代码就越混乱。

标签: arrays r reference self


【解决方案1】:

试试subset

subset(k0100_m020_r05_h10000__aea000_aee0, cumsumData > 0)

【讨论】:

    【解决方案2】:

    如果您要查看多个列,apply 方法可能有用:

    k0100_m020_r05_h10000__aea000_aee0 <- as.data.frame(matrix(rnorm(25),ncol=5))
    
    apply( k0100_m020_r05_h10000__aea000_aee0 , 2 , function(x) x [ x>0 ] )
    #$V1
    #[1] 1.5840356 0.2497689
    
    #$V2
    #[1] 0.4179352 1.6187143 0.8245239
    
    #$V3
    #[1] 0.09328116 0.20761514 0.29894603 2.14484045
    
    #$V4
    #[1] 0.4882152 0.4643691 0.5591095
    
    #$V5
    #[1] 1.0749748 0.5405291 0.4899797 1.0828021
    

    【讨论】:

      【解决方案3】:

      我不确定这是否是您想要的,但也许with() 可以提供帮助:

      mask <- with(k0100_m020_r05_h10000__aea000_aee0, _self > 0) # gives you a boolean vector
      k0100_m020_r05_h10000__aea000_aee0[mask]                    # gives you the result
      

      【讨论】:

        猜你喜欢
        • 2019-07-11
        • 1970-01-01
        • 2010-10-02
        • 1970-01-01
        • 2021-09-02
        • 2016-05-22
        • 1970-01-01
        • 2019-05-19
        • 2020-07-01
        相关资源
        最近更新 更多