R语言 如何在R数据框架中把列拆成多列
在这篇文章中,我们将讨论如何在R编程语言中把数据框架中的一列分成多列。
方法1:使用stringr包库的str_split_fixed()函数
要在R语言中把一列分成多列,我们使用stringr包库的str_split_fixed()函数。str_split_fixed()函数将一个字符串分割成固定数量的片段。该函数以字符串、分隔字符串的术语和需要分割的部分数量为参数,并返回分割后的字符串。
语法:
str_split_fixed( sample_string, separator_pattern, n)
参数
- sample_string: 决定了输入的字符向量。
- separator_pattern: 确定要拆分的模式,由POSIX正则表达式定义。
- n: 决定字符串要被分割成的部分数量。
例子: 将列分成多列
# create sample data frame
df <- data.frame(Name=c('Priyank Mishra', 'Abhiraj Srivastava',
'Pawananjani Kumar'),
State= c("Uttar Pradesh", "Maharashtra", "Bihar"))
print(" Data frame before splitting: ")
df
# load stringr library
library(stringr)
# Split name column into firstname and last name
df[c('First Name', 'Last Name')] <- str_split_fixed(df$Name, ' ', 2)
# Rearrange columns and remove original name column
df <- df[c('First Name', 'Last Name', 'State')]
print(" Data frame after splitting: ")
df
输出
Data frame before splitting:
Name State
1 Priyank Mishra Uttar Pradesh
2 Abhiraj Srivastava Maharashtra
3 Pawananjani Kumar Bihar
Data frame after splitting:
First Name Last Name State
1 Priyank Mishra Uttar Pradesh
2 Abhiraj Srivastava Maharashtra
3 Pawananjani Kumar Bihar
方法2:使用dplyr包库的 separate()函数
为了在R语言中把一列分成多列,我们使用dplyr包库的separator()函数。separate()函数用正则表达式或数字位置将一个字符列分离成多列。该函数以输入字符向量为参数,以向量中的输出列名为参数,并返回最终数据向量。
语法:
separate( sample_data, col )
参数
- sample_data: 确定输入数据框架的列。
- col: 决定了最终要分离的列。
例子: 将列分成多列
# create sample data frame
df <- data.frame(Name=c('Priyank Mishra', 'Abhiraj Srivastava',
'Pawananjani Kumar'),
State= c("Uttar Pradesh", "Maharashtra", "Bihar"))
print(" Data frame before splitting: ")
df
# load dplyr and tidyr library
library(dplyr)
library(tidyr)
# Split name column into firstname and last name
df <- df %>% separate(Name, c('First Name', 'Last Name'))
print(" Data frame after splitting: ")
df
输出
Data frame before splitting:
Name State
1 Priyank Mishra Uttar Pradesh
2 Abhiraj Srivastava Maharashtra
3 Pawananjani Kumar Bihar
Data frame after splitting:
First Name Last Name State
1 Priyank Mishra Uttar Pradesh
2 Abhiraj Srivastava Maharashtra
3 Pawananjani Kumar Bihar