如何在String中间打印R变量

Ant*_*ane 25 r

我试图打印出一个包含String和变量混合的行.这是目前的R代码:

cat("<set name=\",df$timeStamp,\" value=\",df$Price,\" ></set>\n")
Run Code Online (Sandbox Code Playgroud)

以下是运行时输出的内容:

<set name=",df$timeStamp," value=",df$Price," ></set>
Run Code Online (Sandbox Code Playgroud)

我希望它的值为df $ timeStamp和df $ Price打印出来.我想举例如下:

<set name="2010-08-18 12:00:59" value="17.56" ></set>
Run Code Online (Sandbox Code Playgroud)

知道我在代码中出错了吗?

任何和所有的帮助非常感谢.

问候,

安东尼.

Ani*_*iko 21

问题是R不会使用引号计算任何表达式 - 它只是打印您定义的字符串.它有多种方式.例如,您可以使用该sprintf函数(未经测试,因为您没有提供可重现的示例):

   cat(sprintf("<set name=\"%s\" value=\"%f\" ></set>\n", df$timeStamp, df$Price))
Run Code Online (Sandbox Code Playgroud)

  • 当使用单引号时,这使整个事情更容易阅读...`cat(sprintf('<set name ="%s"value ="%f"> </ set> \n',df $ timeStamp,df $价格))` (2认同)

Sha*_*ane 13

你错过了一些额外的报价.试试这个:

cat('<set name=\"',df$timeStamp,'\" value=\"',df$Price,'\" ></set>\n')
Run Code Online (Sandbox Code Playgroud)

这是我的意思的一个工作示例:

cat("a b c -> \"", letters[1:3], "\"\n")
Run Code Online (Sandbox Code Playgroud)

  • 如果你想要超级光滑,你可以避免必须通过使用单引号来描述字符串和双引号来逃避引号(在这种情况下):`cat('abc - >"',letters [1 :3],'"\n')` (13认同)

Rom*_*ain 9

现在有一个非常方便的函数来执行字符串格式化,其工作方式与 Python 非常相似f-stringsstr_gluestringr包的一部分。

library(stringr)

str_glue('<set name="{df$timeStamp}" value="{df$Price}"></set>')

# <set name="2010-08-18 12:00:59" value="17.56"></set>
Run Code Online (Sandbox Code Playgroud)