欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

如何使用 dplyr 在 R 中为数据帧添加列(附示例)

最编程 2024-07-13 13:49:12
...

你可以使用dplyr包中的mutate()函数,在R语言中向数据框中添加一个或多个列。

这个函数使用以下基本语法:

方法1:在数据框的末端添加列

df %>%
  mutate(new_col=c(1, 3, 3, 5, 4))

方法2:在特定列之前添加列

df %>%
 mutate(new_col=c(1, 3, 3, 5, 4),
        .before=col_name)

方法3:在特定列之后添加列

df %>%
 mutate(new_col=c(1, 3, 3, 5, 4),
        .after=col_name)

方法4:在其他列的基础上添加列

df %>%
  mutate(new_col= if_else(.$col_name > 10, 'A', 'B'))

下面的例子展示了如何在以下数据框架中实际使用这种语法:

#create data frame
df <- data.frame(team=c('A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'),
                 points=c(12, 14, 19, 24, 24, 22, 30, 9),
                 assists=c(4, 6, 6, 8, 3, 7, 8, 11))

#view data frame
df

  team points assists
1    A     12       4
2    A     14       6
3    A     19       6
4    A     24       8
5    B     24       3
6    B     22       7
7    B     30       8
8    B      9      11

例子1:在数据框的末尾添加列

下面的代码显示了如何在数据框架的末尾添加一列:

#add 'blocks' column at end of data frame
df <- df %>%
        mutate(blocks=c(1, 3, 3, 2, 4, 3, 6, 2))

#view data frame
df

  team points assists blocks
1    A     12       4      1
2    A     14       6      3
3    A     19       6      3
4    A     24       8      2
5    B     24       3      4
6    B     22       7      3
7    B     30       8      6
8    B      9      11      2

注意,你可以通过简单地给新列中的每个值分配NA来添加一个空列:

#add empty column at end of data frame
df <- df %>%
        mutate(blocks=NA)

#view data frame
df

  team points assists blocks
1    A     12       4     NA
2    A     14       6     NA
3    A     19       6     NA
4    A     24       8     NA
5    B     24       3     NA
6    B     22       7     NA
7    B     30       8     NA
8    B      9      11     NA

例2:在特定列之前添加列

下面的代码显示了如何在数据框架中的特定列之前添加一列:

#add 'blocks' column before 'points' column
df <- df %>%
        mutate(blocks=c(1, 3, 3, 2, 4, 3, 6, 2),
              .before=points)

#view data frame
df

  team blocks points assists
1    A      1     12       4
2    A      3     14       6
3    A      3     19       6
4    A      2     24       8
5    B      4     24       3
6    B      3     22       7
7    B      6     30       8
8    B      2      9      11

例3:在特定列之后添加列

下面的代码显示了如何在数据框架中的某一特定列之后添加一列:

#add 'blocks' column after 'points' column
df <- df %>%
        mutate(blocks=c(1, 3, 3, 2, 4, 3, 6, 2),
              .after=points)

#view data frame
df

  team points blocks assists
1    A     12      1       4
2    A     14      3       6
3    A     19      3       6
4    A     24      2       8
5    B     24      4       3
6    B     22      3       7
7    B     30      6       8
8    B      9      2      11

例4:在其他列的基础上添加列

下面的代码显示了如何在数据框架中的另一列的基础上添加一列:

#add 'status' column whose values depend on value in 'points' column
df <- df %>%
        mutate(status= if_else(.$points > 20, 'Good', 'Bad'))

#view data frame
df

  team points assists status
1    A     12       4    Bad
2    A     14       6    Bad
3    A     19       6    Bad
4    A     24       8   Good
5    B     24       3   Good
6    B     22       7   Good
7    B     30       8   Good
8    B      9      11    Bad

其他资源

下面的教程解释了如何在dplyr中执行其他常用功能:

如何使用dplyr按索引位置重命名列
如何使用dplyr按索引选择列
如何使用dplyr删除行

推荐阅读