数据 trim 正则表达式
Data trim regex
我是正则表达式和 r 的新手,
并尝试清除包含 A 列的数据框。
A
"111 222 AAA2"
"11 23 BBB1"
"101 33 CC3"
第一个空格包含两个空格,第二个空格只包含一个,
并且字符串的长度可以变化。我想得到最后一个词,它出现在第二个空白之后。
输出数据帧将是
A
AAA2
BBB1
CC3
如有任何帮助,我将不胜感激!
1) read.table 使用 read.table
并取第 3 列:
DF <- data.frame(V1 = c("111 222 AAA2", "11 23 BBB1", "101 33 CC3"),
stringsAsFactors = FALSE)
read.table(text = DF$V1, as.is = TRUE)[[3]]
给予:
[1] "AAA2" "BBB1" "CC3"
2) sub 如果你真的想使用正则表达式那么这将删除所有直到并包括最后一个 space 给出相同的结果:
sub(".* ", "", DF$V1)
这是正则表达式的可视化:
.*
如果我理解你的规则,这可能会起作用:
x <- c("111 222 AAA2", "11 23 BBB1", "101 33 CC3")
gsub("^[^A-Z]+", "", x)
## [1] "AAA2" "BBB1" "CC3"
我是正则表达式和 r 的新手, 并尝试清除包含 A 列的数据框。
A
"111 222 AAA2"
"11 23 BBB1"
"101 33 CC3"
第一个空格包含两个空格,第二个空格只包含一个, 并且字符串的长度可以变化。我想得到最后一个词,它出现在第二个空白之后。
输出数据帧将是
A
AAA2
BBB1
CC3
如有任何帮助,我将不胜感激!
1) read.table 使用 read.table
并取第 3 列:
DF <- data.frame(V1 = c("111 222 AAA2", "11 23 BBB1", "101 33 CC3"),
stringsAsFactors = FALSE)
read.table(text = DF$V1, as.is = TRUE)[[3]]
给予:
[1] "AAA2" "BBB1" "CC3"
2) sub 如果你真的想使用正则表达式那么这将删除所有直到并包括最后一个 space 给出相同的结果:
sub(".* ", "", DF$V1)
这是正则表达式的可视化:
.*
如果我理解你的规则,这可能会起作用:
x <- c("111 222 AAA2", "11 23 BBB1", "101 33 CC3")
gsub("^[^A-Z]+", "", x)
## [1] "AAA2" "BBB1" "CC3"