R/Shiny:将数据转置并添加到Dataframe

R/Shiny: Transpose and add data to Dataframe

我正在尝试找出一种转置数据的方法,然后将该数据添加到单独的数据帧中。

我有

Column 1 | Column 2| Column 3
________________________________
Data 1   | Data 2  | Data 3   

在一个单独的数据框中我有

actualColumn1| actualColumn2
________________________________
Column 1   | otherData 2   
Column 2   | otherData 2   
Column 3   | otherData 2   

想去:

actualColumn1| actualColumn2|addedData
________________________________
Column 1   | otherData 2 | Data 1  
Column 2   | otherData 2 | Data 2  
Column 3   | otherData 2 | Data 3

因为第一个数据框中的列名与 actualcolumn1 中的行完全对应。如果我没有很好地解释这一点,我深表歉意。我对 R/Shiny 和数据帧操作还是个新手。

您可以使用 pivot_longer() 重塑数据框,将 3 个变量的 1 个观察值转换为具有 3 个观察值的 1 个变量,然后加入另一个数据框。

library(tidyverse)

df1 %>% 
  mutate(x = 1) %>% 
  pivot_longer(cols = -x, names_to = "actualColumn1", values_to = "addedData") %>% 
  select(-x) %>% 
  left_join(x = df2, y = .)

# Joining, by = "actualColumn1"
#    actualColumn1 actualColumn2 addedData
# 1:      Column 1   otherData 2    Data 1
# 2:      Column 2   otherData 2    Data 2
# 3:      Column 3   otherData 2    Data 3

数据:

df1 <- data.table::fread("Column 1 | Column 2| Column 3
Data 1   | Data 2  | Data 3   ")

df2 <- data.table::fread("actualColumn1| actualColumn2
Column 1   | otherData 2   
Column 2   | otherData 2   
Column 3   | otherData 2   ")