R语言如何让函数仅打印指定结果同时存储其余变量可调用
R函数修改方案
你可以按如下方式调整函数,同时满足「运行仅打印three结果」、「所有变量可通过$调用」的需求:
Made_up <- function(x) { one <- x two <- x + 1 three <- x + 2 # 仅打印three的计算结果 print(three) # 隐式返回包含所有变量的命名列表,直接调用函数时不会额外输出列表内容 invisible(list(one = one, two = two, three = three)) }
效果验证
执行answer <- Made_up(1)时,控制台仅会输出three的取值3,不会额外输出其他内容。你可以通过如下方式调用存储的变量:
answer$one获取第一个变量的取值1answer$two获取第二个变量的取值2answer$three获取第三个变量的取值3
说明
这里使用invisible()包裹返回列表的原因是:如果直接返回列表,你直接调用Made_up(1)不赋值时,控制台会同时打印three和完整的列表内容,不符合仅打印three的要求。invisible()会让返回值仅在被赋值给变量时生效,直接调用函数不会额外输出返回的列表内容。
内容的提问来源于stack exchange,提问作者Taren Shaw
相关产品推荐
相关产品推荐

