2015-01-21 3 views
0

Я просто хочу заменить некоторые разделители слов пробелом. Любые намеки на это? Не работает после преобразования в символ.заменяющие разделители слов пробелом

df <- data.frame(m = 1:3, n = c("one.one", "one.two", "one.three")) 

> gsub(".", "\\1 \\2", df$n) 
[1] "  " "  " "   " 
> gsub(".", " ", df$n) 
[1] "  " "  " "   " 

ответ

1

Я предлагаю вам сделать так,

gsub("\\.", " ", df$n) 

ИЛИ

gsub("\\W", " ", df$n) 

\\W соответствует любому символу, кроме буквы. \\W+ соответствует одному или нескольким символам, отличным от слова. При необходимости используйте \\W+.

2

Вы можете попробовать

gsub("[.]", " ", df$n) 
#[1] "one one" "one two" "one three" 
2

Набор fixed = TRUE, если вы ищете точное соответствие и не нужно регулярное выражение.

gsub(".", " ", df$n, fixed = TRUE) 
#[1] "one one" "one two" "one three" 

Это также быстрее, чем использование соответствующего регулярного выражения для такого случая.

4

Вам не нужно использовать регулярное выражение для перевода символов один к одному. Вы можете использовать chartr().

df$n <- chartr(".", " ", df$n) 
df 
# m   n 
# 1 1 one one 
# 2 2 one two 
# 3 3 one three 
Смежные вопросы