我使用反应性编程开发了一个闪亮的应用程序,假设反应性对象是函数,因此为了引用某些表,我必须在我们引用的表之后传递()
。
我设计的一个算法是使用SQL
语法(在本例中是sqldf
包)很好地实现的。我提供一个查询作为示例:
ratios_135_final <- sqldf("select
b.tot_cap_after_stress*100/c.rwa_0_after_stress as \"n1.0_after_stress\",
b.osn_cap_after_stress*100/c.rwa_2_after_stress as \"n1.2_after_stress\",
b.bas_cap_after_stress*100/c.rwa_1_after_stress as \"n1.1_after_stress\",
a.\"REGN\", d.\"NAME\", a.date, f.buff
from ratios a
inner join capital_final b on (a.\"REGN\" = b.\"REGN\")
inner join rwa_final c on (a.\"REGN\" = c.\"REGN\")
inner join names d on (a.\"REGN\" = d.\"REGN\")
inner join buffer_bank f on (a.\"REGN\" = f.\"REGN\") ")
正如您所看到的,我引用了5个表来构建查询。但我不能为instanse ...*from ratios()*
编写代码。我试图学习dplyr语法,但我发现dplyr
不提供任何函数来处理三个或更多的表。
你能帮我处理这个问题吗?
提前谢谢。
发布于 2019-12-30 16:29:47
这是等价的代码,但是它假设"REGN“是存在于多个表中的唯一列。如果有其他列名在不同的表间共享,则需要进一步修改。
ratios_135_final <-
ratios %>%
inner_join(capital_final, by = "REGN") %>%
inner_join(rwa_final, by = "REGN") %>%
inner_join(names, by = "REGN") %>%
inner_join(buffer_bank, by "REGN") %>%
mutate(n1.0_after_stress = tot_cap_after_stress * 100 / rwa_0_after_stress,
n1.2_after_stress = osn_cap_after_stress * 100 / rwa_2_after_stress,
n1.1_after_stress = bas_cap_after_stress * 100 / rwa_1_after_stress) %>%
select(n1.0_after_stress, n1.2_after_stress, n1.1_after_stress, REGN.x, NAME, date, buff) %>%
rename(REGN = REGN.x)
https://stackoverflow.com/questions/59527124
复制相似问题