如何通过输入键将Shiny中的两个反应式数据框连接在一起?

用户名

我有两个反应性数据框(出于解释目的,我正在创建模拟数据框),我需要使用输入字段作为键将它们以闪亮的方式加入。

library(shiny)
library(tidyverse)
df <- data.frame(key1=c(1:4),key2 = c(5:8),
                 left= c("l1", "l2", "l3", "l4"),
                 right = c("r1", "r2", "r3", "r4"))
left_df <- df[,1:3]
right_df <- df[,c(1:2,3)]

ui <- fluidPage(

    # Sidebar with a slider input for number of bins 
    sidebarLayout(
        sidebarPanel(
            selectInput("key_right", "Right Key", c("key1", "key2")),
            selectInput("key_left", "Right Key", c("key1", "key2"))
        ),

        mainPanel(
           tableOutput("final_data")
        )
    )
)


server <- function(input, output) {
    
    left_df2 <- reactive({
        left_df
    })
    
    rightt_df2 <- reactive({
        right_df
    })
    
     final_df <- reactive({
         left_df2() %>%
             left_join(right_df2(), by = c(input$key_right = input$key_left))
    })
     
     output$final_data <- reactive({
         final_df()
     })

}

我收到此错误:

Error in parse(file, keep.source = FALSE, srcfile = src, encoding = enc) : 
  /app.R:37:60: unexpected '='
36:          left_df2() %>%
37:              left_join(right_df2(), by = c(input$key_right =
Error in sourceUTF8(fullpath, envir = new.env(parent = sharedEnv)) : 

我需要通过key1或key2来执行联接,这应该是用户输入的内容,因为用户可能会上载文件,并且可能有一个键或另一个键。

提前致谢!

r2evans

TL; DR

     final_df <- reactive({
         left_df2() %>%
             left_join(right_df2(), by = setNames(input$key_right, input$key_left))
     })

(我认为您的代码中的键是反向的...第一帧的键名应位于的左侧,而=不是示例中的右侧。这是为什么在下面的示例中我将展示不同的原因中的键名right_df。)

说明

input$key_right = ...实际上是一种重新分配操作(覆盖列表key_right属性的值input),而不是您想要的。

为了进行清晰的演示,我将(1)进行修复right_df,使其包含该right列,并(2)将其key名称更改为其他名称。

right_df <- df[,c(1:2,4)]
names(right_df)[1:2] <- c("key3", "key4")
right_df
#   key3 key4 right
# 1    1    5    r1
# 2    2    6    r2
# 3    3    7    r3
# 4    4    8    r4

从这里开始,静态联接可能是:

left_join(left_df, right_df, by = c("key1" = "key3"))
#   key1 key2 left key4 right
# 1    1    5   l1    5    r1
# 2    2    6   l2    6    r2
# 3    3    7   l3    7    r3
# 4    4    8   l4    8    r4

将名称分配给"key1"字符串的等效方法"key3"是使用setNames

left_join(left_df, right_df, by = setNames("key3", "key1"))

该方法的优点是它允许您通过变量以编程方式定义名称。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何将两个数据框连接在一起

来自分类Dev

SQL如何通过特定的列将两个表连接在一起?

来自分类Dev

将日期之间的两个数据框连接在一起

来自分类Dev

python-如何将两个列值在某个特定2个范围内的数据框连接在一起python?

来自分类Dev

iOS Scatter核心图,如何通过直线将两个点连接在一起?

来自分类Dev

如何将两个图像连接在一起?

来自分类Dev

如何修复将两个表连接在一起的错误

来自分类Dev

如何将两个壁板连接在一起以形成贯通?

来自分类Dev

如何将两个实体对象连接在一起?

来自分类Dev

如何将两个离子应用程序连接在一起?

来自分类Dev

如何将两个表连接在一起以创建 JSON | PHP

来自分类Dev

将C#中的两个列表对象连接在一起

来自分类Dev

如何通过内部联接将两个DataTable联接在一起

来自分类Dev

django用两个唯一的前叉键连接在一起

来自分类Dev

将两个数据帧合为一个,将条目连接在一起

来自分类Dev

使用sqldf将两个数据框连接在一起将在NA列中产生

来自分类Dev

通过本地网络将两个虚拟机连接在一起

来自分类Dev

MySQL-如何使用(LEFT)JOIN通过一个表将两个表连接在一起?

来自分类Dev

尝试通过使用另一个表中的 id 值将两个表连接在一起

来自分类Dev

将两个表连接在一起并在一个表中包含多个结果

来自分类Dev

dplyr 将两个数据集与条件连接在一起

来自分类Dev

将两个numpy数组按索引连接在一起

来自分类Dev

将两个文件连接在一起(AWK)

来自分类Dev

将两个VGA输出端口连接在一起是否安全?

来自分类Dev

将两个HTML脚本连接在一起

来自分类Dev

将两个不同的url请求的结果连接在一起

来自分类Dev

将两个列表连接在一起时遇到问题

来自分类Dev

如何将两个列与一个序列化数据联接在一起?

来自分类Dev

如何将这两个PSQL查询正确地连接在一起?

Related 相关文章

  1. 1

    如何将两个数据框连接在一起

  2. 2

    SQL如何通过特定的列将两个表连接在一起?

  3. 3

    将日期之间的两个数据框连接在一起

  4. 4

    python-如何将两个列值在某个特定2个范围内的数据框连接在一起python?

  5. 5

    iOS Scatter核心图,如何通过直线将两个点连接在一起?

  6. 6

    如何将两个图像连接在一起?

  7. 7

    如何修复将两个表连接在一起的错误

  8. 8

    如何将两个壁板连接在一起以形成贯通?

  9. 9

    如何将两个实体对象连接在一起?

  10. 10

    如何将两个离子应用程序连接在一起?

  11. 11

    如何将两个表连接在一起以创建 JSON | PHP

  12. 12

    将C#中的两个列表对象连接在一起

  13. 13

    如何通过内部联接将两个DataTable联接在一起

  14. 14

    django用两个唯一的前叉键连接在一起

  15. 15

    将两个数据帧合为一个,将条目连接在一起

  16. 16

    使用sqldf将两个数据框连接在一起将在NA列中产生

  17. 17

    通过本地网络将两个虚拟机连接在一起

  18. 18

    MySQL-如何使用(LEFT)JOIN通过一个表将两个表连接在一起?

  19. 19

    尝试通过使用另一个表中的 id 值将两个表连接在一起

  20. 20

    将两个表连接在一起并在一个表中包含多个结果

  21. 21

    dplyr 将两个数据集与条件连接在一起

  22. 22

    将两个numpy数组按索引连接在一起

  23. 23

    将两个文件连接在一起(AWK)

  24. 24

    将两个VGA输出端口连接在一起是否安全?

  25. 25

    将两个HTML脚本连接在一起

  26. 26

    将两个不同的url请求的结果连接在一起

  27. 27

    将两个列表连接在一起时遇到问题

  28. 28

    如何将两个列与一个序列化数据联接在一起?

  29. 29

    如何将这两个PSQL查询正确地连接在一起?

热门标签

归档