r - 将包含双引号的文本字符串发送到函数

标签 r string-formatting double-quotes output

在格式化发送到 R 中的函数的文本字符串时,我在使用双引号时遇到问题。

考虑一个示例函数代码:

foo <- function( numarg = 5, textarg = "** Default text **" ){ 
    print (textarg)
    val <- numarg^2 + numarg
    return(val) 
}

使用以下输入运行时:
foo( 4, "Learning R is fun!" )

输出是:
[1] "Learning R is fun!"
[1] 20

但是当我尝试(以各种方式,如建议的 here )写“R”而不是 R 时,我得到以下输出:
> foo( 4, "Learning R is fun!" )
[1] "Learning R is fun!"
[1] 20
> foo( 4, "Learning "R" is fun!" )
Error: unexpected symbol in "funfun( 4, "Learning "R"
> foo( 4, "Learning \"R\" is fun!" )
[1] "Learning \"R\" is fun!"
[1] 20
> foo( 4, 'Learning "R" is fun!' )
[1] "Learning \"R\" is fun!"
[1] 20

使用 as.character(...)dQuote(...)按照建议 here由于参数数量不同,似乎破坏了该功能。

最佳答案

我知道的两种方式。首先是只使用单引号开始和结束字符串:

> cat( 'Learning "R" is fun!' )
Learning "R" is fun!

其次是转义双引号:
> cat( "Learning \"R\" is fun!" )
Learning "R" is fun!

请注意,这是有效的,因为我使用 cat ,旨在将字符串输出到控制台。看来你用的是print()显示对象而不是输出它

关于r - 将包含双引号的文本字符串发送到函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13449233/

相关文章:

c# - 使用 StringFormat 将字符串添加到 WPF XAML 绑定(bind)

java - 获取双引号内的字符串以及字符串的其余部分

r - 如何在 R 中读取分隔 "::"的 .dat 文件

r - 如何更改 R 中 ctree 对象的绘图背景?

javascript - 输入掩码组的分割长度

c++ - 在填充十六进制和一些转换方面需要帮助

excel - 如何在vba中的字符串中加上双引号?

java - 如何使用带有 EPL 的 Zebra 打印机打印双引号?

r - 如何在 R 中与 litR 并行处理 LAScatalog

r - SparkR(Spark 2.1.0 或 2.2.0)中有 MaxAbsScaler 吗?