[英]Splitting a single column into multiple columns
我需要将一个数据框拆分为多个列,以确保每个单元格中仅包含一个值。 当前数据框如下所示:
projectid| count | Name | Type | count |
.....................................................................
ABC | 211 | jack |abc(Apple, Orange, Water melon)| Multiple|
DBG | 90 | jill | Plum | single |
新的数据框应该看起来像
projectid| count | Name | Type | count |
....................................................
ABC | 211 | jack | Apple |Multiple|
ABC | 211 | jack | Orange |Multiple|
ABC | 211 | jack | Water melon |Multiple|
DBG | 90 | jill | Plum |single |
我可以使用基于“()”和“,”作为分隔符的正则表达式拆分单个单元格。 但是,我不知道如何填充多列。
一种方法是提取方括号之间的所有内容,然后使用separate_rows
library(dplyr)
library(tidyr)
df %>%
mutate(Type = sub(".*\\((.*)\\).*", "\\1", Type)) %>%
separate_rows(Type, sep = ",")
# projectid count Name Type count.1
#1 ABC 211 jack Apple Multiple
#2 ABC 211 jack Orange Multiple
#3 ABC 211 jack Water melon Multiple
#4 DBG 90 jill Plum single
主要部分是正则表达式,用于提取圆括号之间的所有内容。 完成此操作后,我们可以使用此链接中的任何方法将逗号分隔的值分隔在不同的行中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.