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