【发布时间】:2020-08-02 18:34:31
【问题描述】:
我正在寻找一个数据框,其中 4 列的所有值都低于 0.5,不包括 NA 值。
可重现的例子
set.seed(121)
df = data.frame(ma1=runif(n=100, min=1e-5, max=.9999),
ma2=runif(n=100, min=1e-5, max=.9999),
intercept=runif(n=100, min=1e-5, max=.9999),
a1=runif(n=100, min=1e-5, max=.9999),
a2=runif(n=100, min=1e-5, max=.9999))
while(sum(is.na(df) == TRUE) < (nrow(df) * ncol(df) * 40/100)){
df[sample(nrow(df),1), sample(ncol(df),1)] <- NA
}
head(df,5)
# ma1 ma2 intercept a1 a2
1 0.3991884 0.17579814 0.5149290 0.4002567 0.2196074
2 0.9514976 NA NA 0.7689985 0.8700596
3 0.5431010 0.02019813 NA 0.4964349 0.8550961
4 0.7627217 0.95688326 0.6535286 0.6048702 NA
5 0.5507881 0.18073649 NA NA NA
我希望只保留除截距之外的所有列的值低于 0.5 的所有行。比如上面的第1行。
我试过这个,但它是错误的。
subset(df, (ma1 < 0.5 | ma2 < 0.5 |a1 < 0.5 |a2 < 0.5) | is.na(df) )
【问题讨论】: