2015-09-01 3 views
4

У меня есть строка:Как добавить кавычки вокруг каждого слова в строке в R?

words<-"Monday, Tuesday, Wednesday, Thursday,Friday" 

и мне нужно только добавить кавычки для каждого слова:

"Monday", "Tuesday", "Wednesday", "Thursday","Friday" 

получить длину пяти строк.

Я знаю, что есть много сообщений об этой теме, но я did't найти что-нибудь об этом в R.

Большого спасибо.

+1

'sa pply (strsplit (words, ','), function (x) toString (dQuote (x))) ' – akrun

+0

Вам нужна одна строка или пять строк? – vck

+0

strsplit (слова, '[,]'), если вам просто нужна строка, разделенная. (Я не уверен, почему вам нужно будет добавлять кавычки для каждой строки) –

ответ

6

Мы можем разделить слова на ,, чтобы получить вывод list. Мы прокручиваем sapply, dQuote элементами, а затем paste вместе с toString, который является оберткой для paste(..., collapse=', ').

sapply(strsplit(words, '[, ]+'), function(x) toString(dQuote(x))) 
#[1] "“Monday”, “Tuesday”, “Wednesday”, “Thursday”, “Friday”" 
+1

Спасибо, @akrun. Как бы вы изменили причудливые цитаты на прямые кавычки? Я попробовал свой код и задал «options (useFancyQuotes = FALSE)», но он вставлял косые черты повсюду: «\» понедельник \ »,« вторник »,« среда »,« четверг »,« пятница » \ "" ' – Nova

+1

@Nova По умолчанию кавычки экранируются. Но, если это для печати цели wrap с 'cat', и он будет печатать без косых черт. – akrun

0

strsplit разделяет строку запятой, а sub удаляет пробелы.

paste(dQuote(sub(" ","",unlist(strsplit(words,split = ",")))),collapse = ", ") 

[1] "“Monday”, “Tuesday”, “Wednesday”, “Thursday”, “Friday”" 
3

Использование gsub

words<-"Monday, Tuesday, Wednesday, Thursday,Friday" 
cat(gsub("(\\w+)", '"\\1"', words)) 
# "Monday", "Tuesday", "Wednesday", "Thursday","Friday" 

ПОЦЕЛУЙ ....

cat(gsub("\\b", '"', words, perl=T)) 
#"Monday", "Tuesday", "Wednesday", "Thursday","Friday" 

\\b называется граница слова, которое соответствует между символом слова (AZ, AZ, _, 0-9) и несловный символ (не A-Za-z0-9_) или наоборот.

+0

Как насчет объяснения того, что здесь происходит? – theforestecologist

Смежные вопросы