【问题标题】:Get min-1 and min-2 in a dataframe in r在 r 的数据框中获取 min-1 和 min-2
【发布时间】:2022-09-23 02:50:41
【问题描述】:

我有以下数据

add <- c(\"A\",\"A\",\"A\",\"B\",\"B\",\"B\",\"C\",\"C\",\"C\")
add_1 <- c(\"A\",\"B\",\"C\",\"A\",\"B\",\"C\",\"A\",\"B\",\"C\")
val <- c(10,12,34,21,22,31,1,2,3)
a <- data.frame(add,add_1,val)

输出 df 应该有三列: 添加,添加_1_closest_1,添加_1_closest_2 b/w add 和 add_1 的最小差异应该出现在 add_1_closest_1 中。第二个最小的差异应该出现在 add_1_closest_2

需要以下输出:

    标签: r


    【解决方案1】:

    我们可以订购数据

    library(dplyr)
    library(tidyr)
    library(data.table)
    library(stringr)
     a %>% 
      arrange(add, val) %>% 
      filter(rowid(add) <3) %>% 
      mutate(val = str_c('add_1_Closest_', rowid(add))) %>% 
      pivot_wider(names_from = val, values_from = add_1)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-27
      • 1970-01-01
      • 2021-08-30
      • 2019-03-07
      • 2023-03-19
      • 2020-07-28
      • 2019-03-01
      • 2021-09-21
      相关资源
      最近更新 更多