R 未告知时,将空格分开

R 未告知时,将空格分开,r,tidyr,R,Tidyr,我的数据中有一个变量,由|#|分隔,数据是字母数字的混合,并且包含整个空格 在TidyR中使用sep,我将sep指定为“|#|”,但当进程运行时,它会将变量拆分为空白以及指定的分隔符 如何强制此命令忽略空白,仅根据指定内容进行分割 我的代码如下: library(tidyr) Tasks2 <- Tasks2 %>% mutate(Task_Filter = paste(Task_Type_ID)) %>% separate('Task_Filter', paste(&

我的数据中有一个变量,由|#|分隔,数据是字母数字的混合,并且包含整个空格

在TidyR中使用sep,我将sep指定为“|#|”,但当进程运行时,它会将变量拆分为空白以及指定的分隔符

如何强制此命令忽略空白,仅根据指定内容进行分割

我的代码如下:

library(tidyr)
Tasks2 <- Tasks2 %>%
  mutate(Task_Filter = paste(Task_Type_ID)) %>%
  separate('Task_Filter', paste("Task_Filter", 1:4, sep= "|#|"), extra = "drop")
library(tidyr)
任务2%
mutate(Task\u Filter=粘贴(Task\u Type\u ID))%>%
分离('Task_Filter',粘贴('Task_Filter',1:4,sep=“|#|”),'extra=“drop”)
拆分值的示例如下

4 |#|注意引用|#| | 0000 |#| | 20/01/2021 |#|连接 系统

我选择了|#|,因为这是源数据中的内容,所有条目都具有相同的格式。我希望这个例子中的4个新变量是4, 注意:引用, 0000 0000, 2021年1月20日

但我得到的是: 4. 铌 引用
参考

您可以
通过在模式中不仅使用管道,而且使用空格来分隔

library(tidyr)
separate(df, col = "x", into = paste("Task_Filter", 1:5), sep = "\\s\\|#\\|\\s")
  Task_Filter 1     Task_Filter 2 Task_Filter 3 Task_Filter 4  Task_Filter 5
1             4 NB quote referred     0000 0000    20/01/2021 Connect System
数据:


df您可以
通过在模式中不仅使用管道而且使用空格来分隔

library(tidyr)
separate(df, col = "x", into = paste("Task_Filter", 1:5), sep = "\\s\\|#\\|\\s")
  Task_Filter 1     Task_Filter 2 Task_Filter 3 Task_Filter 4  Task_Filter 5
1             4 NB quote referred     0000 0000    20/01/2021 Connect System
数据:


df这里是另一个解决方案。我不确定这是否需要。请告诉我。
我认为要分隔的列数未知
cSplit
非常方便

library(splitstackshape)

df1 <- df %>% 
  cSplit('x', '|#|') %>% 
  select(everything()[c(TRUE, FALSE)])

这是另一个解决方案。我不确定这是否需要。请告诉我。 我认为要分隔的列数未知
cSplit
非常方便

library(splitstackshape)

df1 <- df %>% 
  cSplit('x', '|#|') %>% 
  select(everything()[c(TRUE, FALSE)])

您可以使用
sep=“\\\\\\\\\\\\\\\”
。由于
|
是正则表达式中的一个特殊字符,需要进行转义以进行字面匹配。感谢@Ronaksah,我刚刚尝试了这个方法,但输出仍然保持不变,仍然会分割空白。您可以使用
dput
提供数据吗?编辑您的帖子,将
dput(head(Tasks2,10))
@RonakShah的输出作为敏感的公司数据。所讨论的变量的结构为chr[1:59042],您可以使用
sep=“\\\\\\\\\\\\\\\\\\\\\”
。由于
|
是正则表达式中的一个特殊字符,需要进行转义以进行字面匹配。感谢@Ronaksah,我刚刚尝试了这个方法,但输出仍然保持不变,仍然会分割空白。您可以使用
dput
提供数据吗?编辑您的帖子,将
dput(head(Tasks2,10))
@RonakShah的输出作为敏感的公司数据。所讨论的变量的结构为chr[1:59042],感谢@TarJae的提示,有替代品总是好的!谢谢你的提示@TarJae,有选择总是好的!