如何创建R函数:将非字符串输入拼接到现有字符串末尾
解决方案
要实现调用f(world)时将name更新为"hello_world",可以借助R的非标准求值特性来获取参数的符号名称,再完成字符串拼接。修改后的函数如下:
f <- function(input){ input_symbol <- deparse(substitute(input)) name <- paste0("hello_", input_symbol) name # 默认返回最后一行,也可以显式用return(name) }
调用验证:
f(world) # 输出结果:[1] "hello_world"
核心要点
substitute(input)会捕获你传入的参数符号(也就是world),而非参数的实际值deparse()将捕获到的符号转换为字符串,这样就能和前缀"hello_"拼接成目标字符串- 全程不需要把输入写成字符串
"world",完全符合你的要求
内容的提问来源于stack exchange,提问作者Victor Nielsen
相关产品推荐
相关产品推荐

