“自我” - 可以在R中轻松引用?

时间:2013-04-15 12:34:10

标签: arrays r reference self

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

# 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]

3 个答案:

答案 0 :(得分:2)

尝试subset

subset(k0100_m020_r05_h10000__aea000_aee0, cumsumData > 0)

答案 1 :(得分:1)

如果您想要查看多个列,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

答案 2 :(得分:0)

我不确定这是否是您想要的,但也许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