我正在使用一个应该由几个分隔符分隔的数据库。最常见的是分号和一个点,后面跟着斜杠:'./‘。
如何完成代码以应用这两个分隔符?
library(tidyverse)
library(splitstackshape)
values <- c("cat; dog; mouse", "cat ./ dog ./ mouse")
data <- data.frame(cbind(values))
separated <- cSplit(data.frame(data), "values", sep = ";", drop = TRUE)我尝试了向量解,但没有成功。
发布于 2022-09-26 12:10:30
我不太确定您的最终输出结构应该是什么,但是一种方法可以是从tidy::separate开始,它会将所有的动物放在一个单独的专栏中:
df <- tidyr::separate(data, col = values,
into = c("Animal1", "Animal2", "Animal3"),
sep = c(";|./"))
#. Animal1 Animal2 Animal3
#1 cat dog mouse
#2 cat dog mouse如果每个字符串中没有预先定义的元素数,您还可以尝试:
# Add in a third value to data with only 2 animals
values <- c("cat; dog; mouse", "cat ./ dog ./ mouse", "frog; squirrel")
data <- data.frame(cbind(values))
data_clean <- gsub(";|./", ";", data$values)
separated <- splitstackshape::cSplit(data.frame(values = data_clean),
"values", sep = ";", drop = TRUE)
# values_1 values_2 values_3
# 1: cat dog mouse
# 2: cat dog mouse
# 3: frog squirrel <NA>https://stackoverflow.com/questions/73853226
复制相似问题