如何获取R中值的来源环境?以stats::lm为例
如何确定R对象的来源环境?
针对lm函数的情况
在全新R会话中,lm确实对应stats::lm,可以通过以下方式确认它的来源环境:
- 用
environment()函数直接查看函数的定义环境:environment(lm) # 输出:<environment: namespace:stats> - 用
find()函数查找对象所在的环境路径:find("lm") # 输出:[1] "package:stats"
通用获取任意对象来源环境的方法
不同类型的对象可以用以下几种通用方法:
environment():适用于函数类对象,直接返回其定义所在的环境,是最直接的方式。比如查看mean的来源:environment(mean)find():传入对象名称的字符串,返回该对象被R找到的环境列表(第一个结果通常是其定义环境)。比如查找全局环境变量的位置:x <- 1 find("x") # 输出:[1] ".GlobalEnv"getAnywhere():如果对象可能在多个环境中存在(比如同名函数),这个函数会列出所有匹配项及其所在环境,适合排查同名对象:getAnywhere("lm")- 注意:对于非函数类的普通对象(比如全局变量),它们的"来源环境"就是存储它们的环境,
find()可以直接定位;而函数的来源环境是其定义时所在的命名空间环境。
内容的提问来源于stack exchange,提问作者shadowtalker
相关产品推荐
相关产品推荐

