r - 如果一行中的任何变量大于一个值,则将该行保留在 R 中
问题描述
所以,我有一个有效的代码:
minimum_ozone <- 65
ozone <- subset(ozone, ozone[2] >= minimum_ozone | ozone[3] >= minimum_ozone | ozone[4] >= minimum_ozone | ozone[5] >= minimum_ozone | ozone[6] >= minimum_ozone | ozone[7] >= minimum_ozone
| ozone[8] >= minimum_ozone | ozone[9] >= minimum_ozone | ozone[10] >= minimum_ozone | ozone[11] >= minimum_ozone | ozone[12] >= minimum_ozone | ozone[13] >= minimum_ozone
| ozone[14] >= minimum_ozone | ozone[15] >= minimum_ozone | ozone[16] >= minimum_ozone | ozone[17] >= minimum_ozone | ozone[18] >= minimum_ozone | ozone[19] >= minimum_ozone
| ozone[20] >= minimum_ozone | ozone[21] >= minimum_ozone | ozone[22] >= minimum_ozone | ozone[23] >= minimum_ozone | ozone[24] >= minimum_ozone | ozone[25] >= minimum_ozone)
但是,这段代码似乎太庞大了......是否有更短的代码/更快的方法来执行它?
解决方案
set.seed(1)
ozone <- as.data.frame(matrix(sample(40:70, 50, replace=TRUE), 10))
ozone
# V1 V2 V3 V4 V5
# 1 48 46 68 54 65
# 2 51 45 46 58 60
# 3 57 61 60 55 64
# 4 68 51 43 45 57
# 5 46 63 48 65 56
# 6 67 55 51 60 64
# 7 69 62 40 64 40
# 8 60 70 51 43 54
# 9 59 51 66 62 62
# 10 41 64 50 52 61
minimum_ozone <- 65
ozone[which(apply(ozone, 1, max) > minimum_ozone), ]
# V1 V2 V3 V4 V5
# 1 48 46 68 54 65
# 4 68 51 43 45 57
# 6 67 55 51 60 64
# 7 69 62 40 64 40
# 8 60 70 51 43 54
# 9 59 51 66 62 62
推荐阅读
- javascript - 创建一个只返回奇数的函数
- angular - 我将如何使用在 Angular 的后期阶段确定其值的变量?
- python - Can't delete and reinstall Python 3 because of new user folder name
- assembly - 在 Z80 CP/M 上等待一段时间
- javascript - 具有多个固定列和多个滚动的表格
- javascript - JS数组递归
- powerbi - Power BI 中的 COUNTIF(需要新的计算列)
- c# - 替换 AuthenticationHandler 进行集成测试
- c# - 尝试在本地驱动器上打开与数据库的 SQL 连接会导致 System.Data.SqlClient.SqlException
- javascript - 为什么我会收到这些未定义的值?