【问题标题】:Merge two dataframe and create new on with smaller values合并两个数据框并使用较小的值创建新的
【发布时间】:2018-02-21 15:53:25
【问题描述】:

我正在尝试合并两个数据框(大小相同)并创建新的数据框,该数据框在同一列和同一行中包含较少数量的两个值。
例如,两个数据框是:

df1

1 2 3
2 2 5
5 3 2

df 2

2 1 2
4 4 2
3 2 4

想要的输出是

1 1 2
2 2 2
3 2 2

换句话说,比较两个数据帧中的每个值并选择较小的数字。

【问题讨论】:

    标签: r dataframe replace merge min


    【解决方案1】:

    我们可以使用pmin得到每个对应元素的min

    pmin(df1, df2)
    #   v1 v2 v3
    #1  1  1  2
    #2  2  2  2
    #3  3  2  2
    

    或者如果有多个数据集,则将其放在list 并应用pmin

    do.call(pmin, list(df1, df2))
    #   v1 v2 v3
    #1  1  1  2
    #2  2  2  2
    #3  3  2  2
    

    数据

    df1 <- structure(list(v1 = c(1L, 2L, 5L), v2 = c(2L, 2L, 3L), v3 = c(3L, 
     5L, 2L)), .Names = c("v1", "v2", "v3"), class = "data.frame", 
     row.names = c(NA, -3L))
    
    df2 <- structure(list(v1 = c(2L, 4L, 3L), v2 = c(1L, 4L, 2L), v3 = c(2L, 
     2L, 4L)), .Names = c("v1", "v2", "v3"), class = "data.frame",
     row.names = c(NA, -3L))
    

    【讨论】:

      猜你喜欢
      • 2022-11-18
      • 2017-07-04
      • 2012-11-25
      • 1970-01-01
      • 1970-01-01
      • 2019-11-29
      • 1970-01-01
      • 1970-01-01
      • 2020-02-24
      相关资源
      最近更新 更多