Как напечатать переменные R в середине строки - PullRequest
25 голосов
/ 18 августа 2010

Я пытаюсь распечатать строку, содержащую смесь строки и переменной. Вот код R в настоящее время:

cat("<set name=\",df$timeStamp,\" value=\",df$Price,\" ></set>\n")

Вот что он печатает при запуске:

<set name=",df$timeStamp," value=",df$Price," ></set>

Мне бы хотелось, чтобы распечатывались значения df $ timeStamp и df $ Price. Я хотел бы, например, следующее:

<set name="2010-08-18 12:00:59" value="17.56" ></set>

Есть идеи, где я ошибаюсь в коде?

Любая и вся помощь очень ценится.

С уважением,

Энтони.

Ответы [ 3 ]

21 голосов
/ 18 августа 2010

Проблема в том, что R не оценивает любое выражение в кавычках - оно просто печатает определенную вами строку.Есть несколько способов обойти это.Например, вы можете использовать функцию sprintf (не проверено, потому что вы не предоставили воспроизводимый пример):

   cat(sprintf("<set name=\"%s\" value=\"%f\" ></set>\n", df$timeStamp, df$Price))
13 голосов
/ 18 августа 2010

Вам не хватает некоторых дополнительных цитат.Попробуйте это:

cat('<set name=\"',df$timeStamp,'\" value=\"',df$Price,'\" ></set>\n')

Вот рабочий пример того, что я имею в виду:

cat("a b c -> \"", letters[1:3], "\"\n")
1 голос
/ 19 сентября 2016

Cat отлично работает без дополнительных библиотек и экранировок:

cat('<set name="', df$timeStamp, '" value="', df$Price, '"></set>\n', sep='')

вывод:

<set name="2010-08-18 12:00:59" value="17.56"></set>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...