【问题标题】:Mutate dataframe A based on dataframe B?基于数据框 B 变异数据框 A?
【发布时间】:2023-01-07 06:37:19
【问题描述】:

假设我有两个数据框 A 和 B,它们是这样生成的:

library(dplyr)
# Example Data A
{
  set.seed(123)
  
  index = rep(c(1:30),
              each = 15*360)
  
  month = rep(c(1:12), 
              each = 15, 
              times = 30)
  
  day = rep(c(1:15),
            each = 1,
            times = 360)
  
  variable_of_interest = runif(n = 15*360*30,
                               min = 0,
                               max = 100)
  
  Data_A = as.data.frame(cbind(index,
                             month,
                             day,
                             variable_of_interest)) 
}

# Example Data B
{
  Data_B = Data_A %>% group_by(index,
                               month) %>% summarise(classification_threshold = mean(variable_of_interest))
}
  

Data_AData_B 有两个相似的列,indexmonth,但行号不同。

我想要的是使用数据帧Data_B的名为classification_threshold的列通过创建一个新列来改变数据帧Data_A,这表明variable_of_interest的相应观察是否有自己的独特阈值(值=1)或低于(值 = 0)。

在这样做时,我想使用列 indexmonth 来识别正确的 classification_threshold 值以与 variable_of_interest 进行比较。

【问题讨论】:

    标签: r dplyr


    【解决方案1】:

    也许

    library(dplyr)
    left_join(Data_A, ungroup(Data_B), by = c("index", "month")) %>% 
       mutate(flag = +(variable_of_interest < classification_threshold))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-04-15
      • 2013-06-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-04
      • 2021-11-28
      • 1970-01-01
      相关资源
      最近更新 更多