在 R 中使用 scan() 函数在下划线处拆分字符串 - strsplit() 与 scan() 比较

Split Character String at Underscore Using scan() Function in R - strsplit() vs. scan() Comparison

我注意到函数 strsplit() 和 scan() 处理下划线的方式不同,我想知道为什么会这样。

请考虑以下示例代码:

x1 <- "string split"

strsplit(x1, " ")[[1]]
# [1] "string" "split" 

scan(text = x1, what = " ")
# [1] "string" "split" 

使用“ ”作为分隔符时,strsplit 和 scan 的输出相同。

但是,当我使用“_”作为分隔符时,输出是不同的:

x2 <- "string_split"

strsplit(x2, "_")[[1]]
# [1] "string" "split" 

scan(text = x2, what = "_")
# [1] "string_split"

为什么使用下划线作为分隔符时,strsplit 和 scan 的输出不同?

参数 what 不是分隔符而是数据类型。在你的情况下,你有性格:

scan(text=x2, what = character(), sep='_', quiet = TRUE)
[1] "string" "split"