R语言如何给数据框增加新的列

dplyr::mutate
R语言
数据清理
tidyverse
作者

Shalom

发布日期

2022年9月23日

数据准备

library(tidyverse)
data<-head(mtcars) %>% select(mpg,cyl)
data
                   mpg cyl
Mazda RX4         21.0   6
Mazda RX4 Wag     21.0   6
Datsun 710        22.8   4
Hornet 4 Drive    21.4   6
Hornet Sportabout 18.7   8
Valiant           18.1   6

R基础包

data$mpg1<-data$mpg+1
data
                   mpg cyl mpg1
Mazda RX4         21.0   6 22.0
Mazda RX4 Wag     21.0   6 22.0
Datsun 710        22.8   4 23.8
Hornet 4 Drive    21.4   6 22.4
Hornet Sportabout 18.7   8 19.7
Valiant           18.1   6 19.1

Tidyverse语法

mutate(data,mpg2=mpg+1)
                   mpg cyl mpg1 mpg2
Mazda RX4         21.0   6 22.0 22.0
Mazda RX4 Wag     21.0   6 22.0 22.0
Datsun 710        22.8   4 23.8 23.8
Hornet 4 Drive    21.4   6 22.4 22.4
Hornet Sportabout 18.7   8 19.7 19.7
Valiant           18.1   6 19.1 19.1
data %>% mutate(mpg2=mpg+1,cyl2=if_else(cyl>6,'high','low'))
                   mpg cyl mpg1 mpg2 cyl2
Mazda RX4         21.0   6 22.0 22.0  low
Mazda RX4 Wag     21.0   6 22.0 22.0  low
Datsun 710        22.8   4 23.8 23.8  low
Hornet 4 Drive    21.4   6 22.4 22.4  low
Hornet Sportabout 18.7   8 19.7 19.7 high
Valiant           18.1   6 19.1 19.1  low
data %>% mutate(mpg2=mpg+1,cyl2=if_else(cyl>6,'high','low')) %>%
  select(starts_with('cyl')) %>%
  rownames_to_column(var='var') #将行名变成新列
                var cyl cyl2
1         Mazda RX4   6  low
2     Mazda RX4 Wag   6  low
3        Datsun 710   4  low
4    Hornet 4 Drive   6  low
5 Hornet Sportabout   8 high
6           Valiant   6  low