R语言 如何在R数据框架中把列拆成多列

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

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程