根据下面的示例数据,如何将数字分为两个不同的列,即X
和Y
?
样本数据
Coordinates = c("[-1.74589,6.74885]", NA, NA, NA, NA, "[-1.582775,6.100376]", "[-1.68144,6.63265]", NA, NA, NA, "[-1.98006,6.33484]", "[-0.94156,6.63623]")
df <- data.frame(Coordinates)
预期输出:
Coordinates X Y
[-1.74589,6.74885] -1.74589 6.74885
NA NA NA
NA NA NA
NA NA NA
NA NA NA
[-1.582775,6.100376] -1.582775 6.100376
[-1.68144,6.63265] -1.68144 6.63265
NA NA NA
NA NA NA
NA NA NA
[-1.98006,6.33484] -1.98006 6.33484
[-0.94156,6.63623] -0.94156 6.6362
3条答案
按热度按时间at0kjp5o1#
您可以使用
tidyr::extract
:zy1mlcev2#
一个可能的选项是使用tidyr package中的
separate()
:创建于2023年2月8日,使用reprex v2.0.2
注意:与@ DarrenTsai的
extract()
方法不同,这不会将“X”和“Y”的类型更改为数值尽管您可以根据需要将“X”和“Y”更改为数字:
创建于2023年2月8日,使用reprex v2.0.2
jchrr9hc3#
在较新版本的
tidyr
中,我们还可以使用separate_wider_regex
如果需要转换类型,则在末尾添加
%>% type.convert(as.is = TRUE)