首页 > 解决方案 > 在 R 中创建一个比较其他两个列的新列

问题描述

我的数据看起来像:

x             y  
2             5
3             6
4             2
6             1
7             10
12            16
145           1

希望将小于另一个的数字输出到一个新列中,如下所示:

x             y           z
2             5           2
3             6           3
4             2           2
6             1           1
7             10          7
12            16          12
145           1           1

没有任何数据是相等的,因此您无需担心。

x <- c(2,3,4,6,7,12,145)
y <- c(5,6,2,1,10,16,1)
df <- data.frame(x,y)

标签: rcalculated-columns

解决方案


使用 tidyverse 中的 case_when

remove(list = ls())
x <- c(2,3,4,6,7,12,145)
y <- c(5,6,2,1,10,16,1)
df <- data.frame(x,y)


df <- df %>%
    mutate(z = 
        case_when(
            x < y ~ x,
            TRUE ~ y
        )
    )
df

推荐阅读