我正在尝试打印出包含String和变量混合的行。这是目前的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>
知道我在代码中出错了吗?
任何和所有帮助都非常感激。
此致
安东尼。
答案 0 :(得分:21)
问题在于R不会使用引号来评估任何表达式 - 它只是打印您定义的字符串。它有多种方式。例如,您可以使用sprintf
函数(未经测试,因为您没有提供可重现的示例):
cat(sprintf("<set name=\"%s\" value=\"%f\" ></set>\n", df$timeStamp, df$Price))
答案 1 :(得分:13)
你错过了一些额外的报价。试试这个:
cat('<set name=\"',df$timeStamp,'\" value=\"',df$Price,'\" ></set>\n')
以下是我的意思的一个实例:
cat("a b c -> \"", letters[1:3], "\"\n")
答案 2 :(得分:1)
Cat工作正常,没有额外的库和转义:
cat('<set name="', df$timeStamp, '" value="', df$Price, '"></set>\n', sep='')
输出:
<set name="2010-08-18 12:00:59" value="17.56"></set>
答案 3 :(得分:0)
现在有一个非常方便的函数来执行字符串格式化,其工作方式与Python f-strings
类似。 str_glue
是stringr软件包的一部分。
library(stringr)
str_glue('<set name="{df$timeStamp}" value="{df$Price}"></set>')
# <set name="2010-08-18 12:00:59" value="17.56"></set>