使用if函数创建新变量mtcars

使用if函数创建新变量mtcars,r,R,一般来说,我对R和编码非常陌生 我想在mtcars数据框中创建一个名为“x”的新变量。如果变速箱是自动的,则取mpg和disp之和。如果变速器为手动变速器,则取mpg和cyl之和 我该怎么做? 谢谢大家! 一种方法是使用dplyr::mutate()和dplyr::if_else()。像这样: library(dplyr) mtcars %>% mutate(x = if_else( am == 0, mpg + disp, mpg + cyl ))

一般来说,我对R和编码非常陌生

我想在mtcars数据框中创建一个名为“x”的新变量。如果变速箱是自动的,则取mpg和disp之和。如果变速器为手动变速器,则取mpg和cyl之和

我该怎么做?
谢谢大家!

一种方法是使用
dplyr::mutate()
dplyr::if_else()
。像这样:

library(dplyr)

mtcars %>% 
  mutate(x = if_else(
    am == 0,
    mpg + disp,
    mpg + cyl
  ))
base
R解决方案,无需安装其他软件包:

mtcars$x <- 
  ifelse(mtcars$am == 0,
         mtcars$mpg + mtcars$disp,
         mtcars$mpg + mtcars$cyl
         )
mtcars

mtcars$x
mtcars$x到目前为止你试过什么吗?尽管这是一个非常简单的问题,但看看您在哪里得到了
变换(mtcars,x=mpg+ifelse(am==0,disp,cyl))