- 主题:[求助]R语言问题2
show_env <- function(){
listA<-list(ran.in = environment(),
parent = parent.env(environment()),
objects = ls.str(environment())
)
x<-5
ls.str(environment())
# return(listA)
}
> show_env()
listA : List of 3
$ ran.in :<environment: 0x55b5ff4046f8>
$ parent :<environment: R_GlobalEnv>
$ objects:Class 'ls_str' atomic (0)
x : num 5
可是,如果把前面的renturn(listA)加上,运行show_env()就变成了另一个结果了,为什么?
$ran.in
<environment: 0x55b5ff5d9530>
$parent
<environment: R_GlobalEnv>
$objects
--
FROM 125.86.88.*
【 在 gnwd () 的大作中提到: 】
: 标 题: [求助]R语言问题2
: 发信站: 水木社区 (Wed Dec 9 21:00:38 2020), 站内
:
: show_env <- function(){
: listA<-list(ran.in = environment(),
: parent = parent.env(environment()),
: objects = ls.str(environment())
: )
: x<-5
: ls.str(environment())
: # return(listA)
: }
:
:
: > show_env()
: listA : List of 3
: $ ran.in :<environment: 0x55b5ff4046f8>
: $ parent :<environment: R_GlobalEnv>
: $ objects:Class 'ls_str' atomic (0)
: x : num 5
这是返回函数中的 ls.str(environment()),它不仅包括 listA 还包括 x
:
: 可是,如果把前面的renturn(listA)加上,运行show_env()就变成了另一个结果了,为什么?
: $ran.in
: <environment: 0x55b5ff5d9530>
:
: $parent
: <environment: R_GlobalEnv>
:
: $objects
: --
这个只返回 listA
另外,listA 的类型是 list,但 ls.str 的返回值是 ls_str 类型,在显示上自然也是不样的
--
FROM 220.249.99.*
不,其实我想问的是返回listA时,为什么objects为空
--
FROM 125.86.91.*
就是我顶贴的最后一行那里,
objects: 后面就没有东西了
--
FROM 125.86.91.*
【 在 gnwd () 的大作中提到: 】
: 就是我顶贴的最后一行那里,
: objects: 后面就没有东西了
你的 objects 中本来就没有东西啊
你的新打开一个 R,
> ls.str(environment())
>
--
FROM 220.249.99.*
【 在 snoopyzhao 的大作中提到: 】
:
: 你的 objects 中本来就没有东西啊
: 你的新打开一个 R,
: ...................
我知道了,跟我调用ls.str(environment())的时机有关系
如果将下面的z一行放到y的后面,环境就为空,z在y前,环境就包含z对象
show_env1 <-function(){
z<-5
y<-ls.str(environment()
return(y)
}
print(show_env1())
--
FROM 125.86.91.*
【 在 gnwd () 的大作中提到: 】
: 我知道了,跟我调用ls.str(environment())的时机有关系
: 如果将下面的z一行放到y的后面,环境就为空,z在y前,环境就包含z对象
: show_env1 <-function(){
: ...................
是的,在你的第一个例子中, environment() 是空的
--
FROM 220.249.99.*