如何对R函数列表批量调用docstring函数?解决文档串检测报错
解决docstring批量调用报错问题
问题原因
lsf.str()返回的是字符串类型的函数名,但docstring()需要传入的是实际的函数对象。直接传递字符串时,函数无法找到对应的注释内容,因此报错。
解决方案
有两种简单的修正方式:
方法1:用get()转换函数名字符串为函数对象
通过get()函数根据字符串名称获取对应的函数对象,再传入docstring():
library(docstring) test1 = function(x) { #' my docstring #' #' with some description x + 1 } test2 = function(y) { #' another docstring #' #' with more descriptions y + 10 } f = lsf.str() # 遍历函数名字符串,用get()转换后调用docstring lapply(f, function(fun_name) docstring(get(fun_name)))
方法2:直接获取函数对象列表
用mget()直接从环境中取出所有函数对象组成的列表,再批量调用:
# 获取当前环境下所有函数对象的列表 funs <- mget(lsf.str()) # 直接遍历函数对象调用docstring lapply(funs, docstring)
两种方法都能让docstring()正确识别函数内的注释内容,完成批量生成文档的操作。
内容的提问来源于stack exchange,提问作者Henk
相关产品推荐
相关产品推荐

