R:用 Space 分隔文本字符串并删除制表符、换行符等
R: Separate Text String by Space and Remove Tabs, Line Breaks, Etc
阅读 HTML table 后,我的 name
栏出现如下记录:
\n\t\t\t\t\t\t\t\t\t\t\t\t\tMike Moon\n\t\t\t\t\t\t\t\t
以下代码无法在名字和姓氏列中生成正确的值
separate(data=nametable, col = Name, into = c("First","Last"), sep= " ")
奇怪的是,First
列是空白的,而 Last
列只包含此人的名字。
我怎样才能正确地将此列转换为所需的 First
和 Last
列(即...
First Last
Mike Moon
根据@r2evans 的推荐并出现在以下正确答案代码中的数据示例:
nametable <- data.frame(Name="\n\t\t\t\t\t\t\t\t\t\t\t\t\tMike Moon\n\t\t\t\t\t\t\t\t", stringsAsFactors=FALSE)
在继续之前从字段中删除 trim 空格可能会有所帮助。 trimws
删除 "leading and/or trailing whitespace from character strings"(来自 ?trimws
)。
数据:
nametable <- data.frame(Name="\n\t\t\t\t\t\t\t\t\t\t\t\t\tMike Moon\n\t\t\t\t\t\t\t\t", stringsAsFactors=FALSE)
library(dplyr)
nametable %>% mutate(Name = trimws(Name))
# Name
# 1 Mike Moon
我推断你用的是dplyr
以及tidyr
,所以我在这里使用它。在没有 dplyr
用法的情况下执行 nametable$Name <- trimws(nametable$Name)
也非常简单。
从这里开始,就像您最初编码的那样:
nametable %>%
mutate(Name = trimws(Name)) %>%
tidyr::separate(col=Name, into=c("First", "Last"))
# First Last
# 1 Mike Moon
阅读 HTML table 后,我的 name
栏出现如下记录:
\n\t\t\t\t\t\t\t\t\t\t\t\t\tMike Moon\n\t\t\t\t\t\t\t\t
以下代码无法在名字和姓氏列中生成正确的值
separate(data=nametable, col = Name, into = c("First","Last"), sep= " ")
奇怪的是,First
列是空白的,而 Last
列只包含此人的名字。
我怎样才能正确地将此列转换为所需的 First
和 Last
列(即...
First Last
Mike Moon
根据@r2evans 的推荐并出现在以下正确答案代码中的数据示例:
nametable <- data.frame(Name="\n\t\t\t\t\t\t\t\t\t\t\t\t\tMike Moon\n\t\t\t\t\t\t\t\t", stringsAsFactors=FALSE)
在继续之前从字段中删除 trim 空格可能会有所帮助。 trimws
删除 "leading and/or trailing whitespace from character strings"(来自 ?trimws
)。
数据:
nametable <- data.frame(Name="\n\t\t\t\t\t\t\t\t\t\t\t\t\tMike Moon\n\t\t\t\t\t\t\t\t", stringsAsFactors=FALSE)
library(dplyr)
nametable %>% mutate(Name = trimws(Name))
# Name
# 1 Mike Moon
我推断你用的是dplyr
以及tidyr
,所以我在这里使用它。在没有 dplyr
用法的情况下执行 nametable$Name <- trimws(nametable$Name)
也非常简单。
从这里开始,就像您最初编码的那样:
nametable %>%
mutate(Name = trimws(Name)) %>%
tidyr::separate(col=Name, into=c("First", "Last"))
# First Last
# 1 Mike Moon