首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用几个分隔符分隔单元格(分隔堆栈形状)

用几个分隔符分隔单元格(分隔堆栈形状)
EN

Stack Overflow用户
提问于 2022-09-26 11:03:08
回答 1查看 30关注 0票数 0

我正在使用一个应该由几个分隔符分隔的数据库。最常见的是分号和一个点,后面跟着斜杠:'./‘。

如何完成代码以应用这两个分隔符?

代码语言:javascript
复制
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)

我尝试了向量解,但没有成功。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-09-26 12:10:30

我不太确定您的最终输出结构应该是什么,但是一种方法可以是从tidy::separate开始,它会将所有的动物放在一个单独的专栏中:

代码语言:javascript
复制
df <- tidyr::separate(data, col = values, 
                into = c("Animal1", "Animal2", "Animal3"), 
                sep = c(";|./"))

#. Animal1 Animal2 Animal3
#1     cat     dog   mouse
#2     cat     dog   mouse

如果每个字符串中没有预先定义的元素数,您还可以尝试:

代码语言:javascript
复制
# 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>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73853226

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档