我有一个类似这样的dataframe:
continent <- c("Europe", "Asia")
country <- c("France;Germany;Italy", "Japan")
start_problem <- data.frame(continent, country)
start_problem
我想将country
列中的值分隔为多个列,每个国家一个。最终结果应该如下所示:
continent <- c("Europe", "Asia")
country1 <- c("France", "Japan")
country2 <- c("Germany", NA)
country3 <- c("Italy", NA)
goal <- data.frame(continent, country1, country2, country3)
goal
使用separate_wider_delim()
不起作用,因为不是每个大洲都有相同数量的国家,因此原始列中的分隔符数量也不相同。
先谢了
3条答案
按热度按时间bwleehnv1#
我们可以首先通过查找定界符
;
的出现次数max
来确定需要多少列。然后paste
使用“country”字符串在separate
的into =
参数中获取信息。ycggw6v22#
另一种选择是先用
separate_rows
分隔行。创建一个列,其中包含用于pivot_wider
的名称,以使数据更宽,如下所示:创建于2023-03-31带有reprex v2.0.2
kdfy810k3#
碱基R:
如果您严格需要
NA
,则使用