R:按空格分隔文本字符串并删除制表符,换行符等

时间:2018-08-21 14:45:07

标签: r text-mining stringr

读取HTML表后,我的<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> <div ng-app=""> <div class="c" ng-class="{'a': toggle, b: secondToggle}"> <button ng-click="toggle = !toggle">Toggle</button> <button ng-click="secondToggle = !secondToggle">Second Toggle</button> </div> </div>列将显示如下记录:

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列仅包含此人的名字。

如何正确地将此列转换为所需的LastFirst列(即...

Last

每个推荐@ r2evans的数据示例,并在下面的正确答案代码中显示:

First     Last
Mike      Moon

1 个答案:

答案 0 :(得分:1)

在继续操作之前,它可能有助于修剪字段的空白。 trimws删除“字符串中的前导和/或结尾空格” (来自?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

我推断您同时使用dplyrtidyr,因此在这里使用它。不用nametable$Name <- trimws(nametable$Name)来使用dplyr也是很简单的。 从这里开始,就像您最初的编码一样:

nametable %>%
  mutate(Name = trimws(Name)) %>%
  tidyr::separate(col=Name, into=c("First", "Last"))
#   First Last
# 1  Mike Moon