以下是我想要区分的价值观:
f <- data.frame(x = c("c(58663.809, 232648.355, 0)", "c(5902.873, 232674.248, 0)"))
我想删除"c(",用逗号分隔两个值,并删除最后两个字符"0)".
生成的两个列应该如下所示:
x = c(58663.809, 5902.873),
y = c(232648.355, 232674.248)
以下是我想要区分的价值观:
f <- data.frame(x = c("c(58663.809, 232648.355, 0)", "c(5902.873, 232674.248, 0)"))
我想删除"c(",用逗号分隔两个值,并删除最后两个字符"0)".
生成的两个列应该如下所示:
x = c(58663.809, 5902.873),
y = c(232648.355, 232674.248)
以下是使用dplyr
和tidyr
库的一种 Select .
我们从字符串x
中删除"c("
和")"
个字符,使用separate_wider_delim
将数据划分到不同的列中,同时删除最后一个值.最后,使用type.convert
将列值更改为其各自的类型.
library(dplyr)
library(tidyr)
f %>%
mutate(x = gsub("c\\(|\\)", "", x)) %>%
separate_wider_delim(x, names = c("x", "y", NA), delim = ", ") %>%
type.convert(as.is = TRUE) %>%
data.frame()
# x y
#1 58663.809 232648.4
#2 5902.873 232674.2