相关疑难解决方法(0)

在dplyr mutate_at调用中使用多个列的函数

我想使用dplyr mutate_at函数将函数应用于数据框中的多个列,其中函数输入直接应用的列以及数据帧中的另一列.

作为一个具体的例子,我想改变以下数据帧

# Example input dataframe
df <- data.frame(
    x = c(TRUE, TRUE, FALSE),
    y = c("Hello", "Hola", "Ciao"),
    z = c("World", "ao", "HaOlam")
)
Run Code Online (Sandbox Code Playgroud)

mutate_at调用类似于此

df %>%
mutate_at(.vars = vars(y, z),
          .funs = ifelse(x, ., NA))
Run Code Online (Sandbox Code Playgroud)

返回一个看起来像这样的数据框

# Desired output dataframe
df2 <- data.frame(x = c(TRUE, TRUE, FALSE),
                  y_1 = c("Hello", "Hola", NA),
                  z_1 = c("World", "ao", NA))
Run Code Online (Sandbox Code Playgroud)

所需的mutate_at呼叫类似于以下呼叫mutate:

df %>%
   mutate(y_1 = ifelse(x, y, NA),
          z_1 = ifelse(x, z, NA)) …
Run Code Online (Sandbox Code Playgroud)

r dplyr

47
推荐指数
2
解决办法
4万
查看次数

标签 统计

dplyr ×1

r ×1