r - 使用列表查找列表在第二个列表列表中查找高于阈值的值并量化它们
问题描述
我有一个问题是我之前提出的问题的扩展使用嵌套查找表在第二个表中查找高于阈值的值并在 R 中量化它们这次我有一个带有数据框的列表列表。我正在用 R 语言分析河流流量数据,我有两个列表。首先保存来自不同河流河段的两个不同预测(Flowtest1 和 Flowtest2)的数据(Flowtest_all),称为 910 和 950 等数字。我每天有数百个流量测量值(Flow)。
Flowtest1 <- list("910" = tibble(Flow=c(123, 170, 187, 245, 679, 870, 820)),
"950" = tibble(Flow=c(570, 450, 780, 650, 230, 470, 340)))
Flowtest2 <- list("910" = tibble(Flow=c(167, 125, 287, 345, 570, 789, 825)),
"950" = tibble(Flow=c(573, 427, 717, 682, 237, 510, 376)))
Flowtest_all <- list(Flowtest1, Flowtest2)
第二个列表称为 RCH_all 用作查找表,它还包含来自两个不同投影(RCH1 和 RCH2)的数据。我在与 Flowtest_all 不同的流量数据集上计算了 0.75% 百分位 (Q3) 的值(所以我不想使用为 Flowtest_all 计算的 Q3)。Flowtest_all 和 RCH_all 中分析的年份和河流范围相同。
RCH1 <- list("910" = data.frame( Q3=650),
"950" = data.frame(Q3=550))
RCH2 <- list("910" = data.frame(Q3=670),
"950" = data.frame(Q3= 570))
RCH_all <- list(RCH1, RCH2)
我想获得的是来自 Flowtest_all 的流量值的数量,该数量低于每个子流域的 RCH_all 中匹配 Q3 中指定的阈值。我想获得一个看起来像Result_all <- list (Resulttest1, Resulttest2)
Where 的结果:
Resulttest1 <- list("910" = data.frame( aboveQ3=3),
"950" = data.frame( aboveQ3=3))
Resulttest2 <- list("910" = data.frame( aboveQ3=2),
"950" = data.frame( aboveQ3=3))
我尝试了下面的代码,但它产生了一个错误:
test <- Map(function(x, y) aggregate( Flow > Q3, merge(x, y, all = TRUE, na.action = 'na.pass'), sum, na.rm = TRUE, na.action = 'na.pass'), Flowtest_all, RCH_all)
错误:
聚合错误(Flow > Q3,merge(x,y,all = TRUE,na.action = “na.pass”),:找不到对象“Flow”
请帮忙!
解决方案
虽然我没有完全掌握您在分析方面的要求,但我首先会对您的(示例)数据执行以下操作。
> library(dplyr)
> FT <- bind_rows(list("Flowtest1" = bind_rows(Flowtest1, .id = "id"),
"Flowtest2" = bind_rows(Flowtest2, .id = "id")), .id = "FlowTest")
> head(FT)
# A tibble: 6 x 3
FlowTest id Flow
<chr> <chr> <dbl>
1 Flowtest1 910 123
2 Flowtest1 910 170
3 Flowtest1 910 187
4 Flowtest1 910 245
5 Flowtest1 910 679
6 Flowtest1 910 870
一旦数据以这种方式结束,我才会应用必要的阈值并查找相应的数据组(由“FlowTest”和“id”列定义)。
推荐阅读
- excel - 我需要将表示时间的文本字段转换为数字格式
- css - 使用 flex 使所有行在不同列中的高度相同?
- typescript - 调用继承类中存在的静态函数
- r - 替换 imap 中引用 .y 值的 dplyr::funs()
- arrays - 如何在 MongoDB 中聚合对象数组中的项目
- javascript - 在不影响 CSS 值的情况下更改元素的类名
- python - 如果国家的可再生能源百分比高于中位数,则创建一个新列,值为 1,否则为 0
- javascript - 在 Kubernetes 上部署时出现 CreateContainerConfigError
- ios - 为什么 NavigationView 必须是顶级视图?
- python - 如何在python包trading-calander中找到处理目标文件的方法