在 R 中将列拆分为两列
本文将介绍如何在 R 中使用 separate
将一列拆分为两列。
在 R 中使用 separate
函数将列拆分为两列
separate
是 tidyr
包的一部分,它可用于将一个字符列拆分为多个带有正则表达式或数字位置的列。在此代码示例中,我们声明了一个包含逗号分隔的姓名/姓氏对字符串的数据框。separate
函数将数据框作为第一个参数,将列名作为第二个参数。第三个参数表示将成为新创建的字符向量的列名的变量名。请注意,我们使用 %>%
管道将 df
对象传递给 separate
函数。可以在名称和姓氏用点分隔符分隔的数据帧上调用相同的函数调用。
library(dplyr)
library(tidyr)
library(stringr)
df <- data.frame(x = c('John, Mae', 'Maude, Lebowski', 'Mia, Amy', 'Andy, James'))
df1 <- data.frame(x = c('John. Mae', 'Maude. Lebowski', 'Mia. Amy', 'Andy. James'))
df %>% separate(x, c('Name', 'Surname'))
df1 %>% separate(x, c('Name', 'Surname'))
输出:
> df %>% separate(x, c('Name', 'Surname'))
Name Surname
1 John Mae
2 Maude Lebowski
3 Mia Amy
4 Andy James
> df1 %>% separate(x, c('Name', 'Surname'))
Name Surname
1 John Mae
2 Maude Lebowski
3 Mia Amy
4 Andy James
在 R 中使用 extract
函数将列拆分为两列
将一列拆分为两个单独的列的另一个有用功能是 extract
,它也是 tidyr
包的一部分。extract
函数适用于使用正则表达式组的列。请注意,每个正则表达式组都应映射到前一个参数中的项目。如果组和项目不匹配,则输出将具有 NA
值。
library(dplyr)
library(tidyr)
library(stringr)
df <- data.frame(x = c('John, Mae', 'Maude, Lebowski', 'Mia, Amy', 'Andy, James'))
df %>% extract(x, c("Name", "Surname"), "([^,]+), ([^)]+)")
输出:
> df %>% extract(x, c("Name", "Surname"), "([^,]+), ([^)]+)")
Name Surname
1 John Mae
2 Maude Lebowski
3 Mia Amy
4 Andy James
使用 str_split_fixed
函数将 R 中的列拆分为两列
或者,我们可以使用 stringr
包中的 str_split_fixed
函数。它匹配给定的字符模式并将字符向量拆分为相应的列数。虽然,用户可以明确地传递要返回的拆分项目的数量。项目数作为第三个参数传递。
library(dplyr)
library(tidyr)
library(stringr)
df <- data.frame(x = c('John, Mae', 'Maude, Lebowski', 'Mia, Amy', 'Andy, James'))
str_split_fixed(df$x, ", ", 2)
输出:
> str_split_fixed(df$x, ", ", 2)
[,1] [,2]
[1,] "John" "Mae"
[2,] "Maude" "Lebowski"
[3,] "Mia" "Amy"
[4,] "Andy" "James"
相关文章
R 中具有多个条件的函数向量化
发布时间:2023/03/21 浏览次数:64 分类:编程语言
-
一项常见的数据分析任务是根据同一行的其他列使用一个或多个条件创建或更新数据框列。 如果我们尝试使用 if 语句来执行此操作,则只会使用第一行来测试条件,并且会根据该行更
在 R 中读取 xlsx 文件
发布时间:2023/03/21 浏览次数:66 分类:编程语言
-
在这篇文章中,你将会了解到两个在 R 中读取 xlsx 文件的最完整和最容易使用的库:readxl 和 openxlsx。