提问人:Larissa Cury 提问时间:9/20/2022 最后编辑:marc_sLarissa Cury 更新时间:9/25/2022 访问量:361
if/else 测试列中的任何行是否大于绝对值 (R studio)
if/else test if ANY row in a column is greater than an absolute value (R studio)
问:
我正在尝试测试列中的任何值/行是否大于绝对值 1。cooksd
if (any(lev$cooksd) > abs(-1)) {
print('yey')
} else {
print('no')
}
警告消息:
In any(lev$cooksd) : 强制将“double”类型的参数强制转换为逻辑参数
但我不认为该功能正在完成这项工作......对此有什么想法吗?any()
提前致谢!
Obs:
数据如下所示:(前两行)
cooksd mdffits covtrace covratio leverage.o~1
<dbl> <dbl> <dbl> <dbl> <dbl>
0.0496 0.0478 0.0368 1.04 0.395
0.0261 0.0251 0.0371 1.04 0.395
评论后编辑:
if (any(abs(lev$cooksd) > 1)) {
print('yey')
} else {
print('no')
}
答:
0赞
Gordon Smyth
9/25/2022
#1
计算列值的最大值更简单、更高效、信息量更大:
max(lev$cooksd) > 1
除了显示最大值是多少(可能提供信息)之外,这种方法的速度是使用 any() 的 3 到 4 倍:
> x <- runif(1e8)
> system.time(any(x > 1))
user system elapsed
0.47 0.01 0.49
> system.time(max(x) > 1)
user system elapsed
0.14 0.00 0.14
评论
any(lev$cooksd > 1)