如何在R语言中捕获rts()函数的完整调用文本用作图表副标题
解决R语言rts函数捕获完整调用语句的问题
要捕获rts()的完整调用文本作为图表副标题,你可以使用sys.call()函数获取当前函数的完整调用表达式,再通过deparse()将其转换为字符串。具体修改如下:
rts <- function(raw_data) { # 获取完整调用并转为单行字符串 func_call <- paste(deparse(sys.call()), collapse = " ") # 示例:用ggplot2设置副标题(根据你实际的绘图代码调整) library(ggplot2) ggplot(data = raw_data, aes(x = days, y = value)) + geom_line() + labs(subtitle = func_call) # 其他图表生成逻辑... }
为什么之前的方法无效?
你之前使用enexpr(raw_data)只能提取参数的符号名称(即raw_data),无法保留raw_data()调用时传入的参数细节。而sys.call()会直接捕获整个rts()函数的完整调用语句,包括嵌套的raw_data()及其所有参数,完全符合你的需求。
当你执行示例调用:
rts(raw_data(compound.list=c('xylene','hexane','unknown'), days=20))
func_call会被赋值为:"rts(raw_data(compound.list = c(\"xylene\", \"hexane\", \"unknown\"), days = 20))",直接作为副标题即可。
内容的提问来源于stack exchange,提问作者Phenomniverse
相关产品推荐
相关产品推荐

