首页 > 代码库 > R语言学习(4)-环境和函数

R语言学习(4)-环境和函数

环境和函数
1.环境
            使用new.env函数创建环境
        > an_environment <- new.env()
            向环境中分配变量与列表相同
an_environment[["pythag"]] <- c(12,15,20,21)
an_environment$root <- polyroot(c(6,-5,1))
assign("moonday",weekdays(as.Date("1969/07/20")),an_environment)
            检索变量
> an_environment$root
[1] 2+0i 3-0i
> get("moonday",an_environment)
[1] "星期日"

            可以把环境参数传给ls和ls.str函数中,列出其中的内容
> ls(an_environment)
[1] "moonday" "pythag"  "root"   
> ls.str(an_environment)
moonday :  chr "星期日"
pythag :  num [1:4] 12 15 20 21
root :  cplx [1:2] 2+0i 3-0i

            使用as.list和as.environment函数可以完成环境和列表的转换
> (a_list <- as.list(an_environment))
$pythag
[1] 12 15 20 21
$moonday
[1] "星期日"
$root
[1] 2+0i 3-0i
> as.environment(a_list)
<environment: 0x0000000005ed8d50>

2.函数
            函数的创建和调用
> a_function <- function(x,y)
{
sqrt(x^2+y^2)
}
a_function(2,4)
[1] 4.472136

            向其它函数传递和接收函数do.call函数
> do.call(a_function,list(x=2,y=1))
[1] 2.236068