1

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

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

3 回答 3

2

试试subset

subset(k0100_m020_r05_h10000__aea000_aee0, cumsumData > 0)
于 2013-04-15T15:42:53.217 回答
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
于 2013-04-15T12:52:26.787 回答
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
于 2013-04-15T12:42:38.583 回答