如何在 r 中将一列拆分为多列(附示例)
您可以使用以下两种方法之一将 R 中的一列拆分为多列:
方法1:使用str_split_fixed()
library (stringr) df[c(' col1 ', ' col2 ')] <- str_split_fixed(df$original_column, ' sep ', 2)
方法2:使用separate()
library (dplyr) library (tidyr) df %>% separate(original_column, c(' col1 ', ' col2 '))
以下示例展示了如何在实践中使用每种方法。
方法1:使用str_split_fixed()
假设我们有以下数据框:
#create data frame
df <- data. frame (player=c('John_Wall', 'Dirk_Nowitzki', 'Steve_Nash'),
dots=c(22, 29, 18),
assists=c(8, 4, 15))
#view data frame
df
player points assists
1 John_Wall 22 8
2 Dirk_Nowitzki 29 4
3 Steve_Nash 18 15
我们可以使用stringr包中的str_split_fixed()函数将“player”列拆分为两个新列,分别称为“First”和“Last”,如下所示:
library (stringr)
#split 'player' column using '_' as the separator
df[c(' First ', ' Last ')] <- str_split_fixed(df$player, ' _ ', 2)
#view updated data frame
df
player points assists First Last
1 John_Wall 22 8 John Wall
2 Dirk_Nowitzki 29 4 Dirk Nowitzki
3 Steve_Nash 18 15 Steve Nash
请注意,数据框末尾添加了两个新列。
如果您愿意,可以随意重新排列列并删除原始的“玩家”列:
#rearrange columns and leave out original 'player' column
df_final <- df[c('First', 'Last', 'points', 'assists')]
#view updated data frame
df_final
First Last points assists
1 John Wall 22 8
2 Dirk Nowitzki 29 4
3 Steve Nash 18 15
方法2:使用separate()
下面的代码展示了如何使用Tidyr包的Separate()函数将“player”列分成“first”和“last”列:
library (dplyr)
library (tidyr)
#create data frame
df <- data. frame (player=c('John_Wall', 'Dirk_Nowitzki', 'Steve_Nash'),
dots=c(22, 29, 18),
assists=c(8, 4, 15))
#separate 'player' column into 'First' and 'Last'
df %>% separate(player, c(' First ', ' Last '))
First Last points assists
1 John Wall 22 8
2 Dirk Nowitzki 29 4
3 Steve Nash 18 15
请注意, Separate()函数将根据任何非字母数字值分隔字符串。
例如,如果名字和姓氏用逗号分隔, Separate()函数将根据逗号的位置自动分割:
library (dplyr)
library (tidyr)
#create data frame
df <- data. frame (player=c('John,Wall', 'Dirk,Nowitzki', 'Steve,Nash'),
dots=c(22, 29, 18),
assists=c(8, 4, 15))
#separate 'player' column into 'First' and 'Last'
df %>% separate(player, c(' First ', ' Last '))
First Last points assists
1 John Wall 22 8
2 Dirk Nowitzki 29 4
3 Steve Nash 18 15
您可以在此处找到Separate()函数的完整在线文档。
其他资源
以下教程解释了如何在 R 中执行其他常见操作: