R 向函数发送包含双引号的文本字符串
在格式化发送到R中函数的文本字符串时,我遇到了使用双引号的问题 考虑一个示例函数代码:R 向函数发送包含双引号的文本字符串,r,string-formatting,double-quotes,output,R,String Formatting,Double Quotes,Output,在格式化发送到R中函数的文本字符串时,我遇到了使用双引号的问题 考虑一个示例函数代码: foo <- function( numarg = 5, textarg = "** Default text **" ){ print (textarg) val <- numarg^2 + numarg return(val) } 输出为: [1] "Learning R is fun!" [1] 20 但是,当我尝试(按照建议,以各种方式)写“R”而不是R时,
foo <- function( numarg = 5, textarg = "** Default text **" ){
print (textarg)
val <- numarg^2 + numarg
return(val)
}
输出为:
[1] "Learning R is fun!"
[1] 20
但是,当我尝试(按照建议,以各种方式)写“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
按照建议使用
作为.character(…)
或dQuote(…)
似乎会因为参数数量不同而中断函数。我知道两种方法。首先是仅使用单引号来开始和结束字符串:
> cat( 'Learning "R" is fun!' )
Learning "R" is fun!
第二个是避开双引号:
> cat( "Learning \"R\" is fun!" )
Learning "R" is fun!
请注意,这是因为我使用了
cat
,它用于将字符串输出到控制台。您似乎使用了显示对象而不是输出对象的print()
,您可以尝试以下方法:
foo <- function(numarg = 5, textarg = "** Default text **" ){
cat(c(textarg, "\n"))
val <- (numarg^2) + numarg
return(val)
}
foo <- function(numarg = 5, textarg = "** Default text **" ){
print(noquote(textarg))
val <- (numarg^2) + numarg
return(val)
}
foo( 4, "Learning R is fun!" )
foo( 4, 'Learning "R" is fun!' )
foo当我尝试在向函数发送文本时使用cat
时,文本格式正确(使用您的任何建议),只是这一次,它输出学习“R”很有趣!空
而不是学习“R”很有趣代码>。知道如何终止添加的NULL
吗?(更重要的是,你知道它是从哪里来的吗?)谢谢!他们都工作!我注意到我可以使用cat(textarg,“\n”)
而不是使用cat(c(textarg,“\n”)
将输出格式化为数组。首选哪一种?
foo <- function(numarg = 5, textarg = "** Default text **" ){
cat(c(textarg, "\n"))
val <- (numarg^2) + numarg
return(val)
}
foo <- function(numarg = 5, textarg = "** Default text **" ){
print(noquote(textarg))
val <- (numarg^2) + numarg
return(val)
}
foo( 4, "Learning R is fun!" )
foo( 4, 'Learning "R" is fun!' )