首页 > 解决方案 > 如果满足 R 中的条件,则应用公式

问题描述

我有以下数据集:

df1 <- list(
  x = seq(0,100, length.out = 1500),
  y = seq(0,500, length.out = 1500),
  z = rep(letters[1], length.out = 1500)
) 

df2 <- list(
  x = seq(0,100, length.out = 1480),
  y = seq(400,800, length.out = 1480),
  z = rep(letters[2], length.out = 1480)
)

df3 <- dplyr::bind_rows(df1,df2)

我需要在 中应用一个函数,df3比方说,如果它符合.yz == 'b'

知道如何实现这一目标吗?

标签: rdplyrtidyverse

解决方案


您也可以尝试case_when将其扩展到两种以上的情况。

library(dplyr)
df3 <- df3 %>% 
     mutate(y = case_when(z=="b" ~ y / 200,
                          TRUE ~ y))

推荐阅读