我试图打印出一个包含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)
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)
现在有一个非常方便的函数来执行字符串格式化,其工作方式与 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>
Run Code Online (Sandbox Code Playgroud)