R:置换函数


    先看下面一段代码:

> x <- c( 1, 2, 4 )

> names( x )

NULL

> names( x ) <- c( "a", "b", "c" )

> x

a b c 1 2 4 

    这似乎没有什麽问题?但实际上,第四行怎么可以把一个数赋值给一个函数调用的结果呢?这个特殊的现象的解释依赖于R语言中的置换函数(replacement functions)。上面那行代码实际执行的形式是:x <- "names<-"( x, value=( "a", "b","c" ) )

 

    任何左边不是标识符(意味变量名)的赋值语句,都可看作是“置换函数”。当我们遇到以下形式:g(u)<-v,R语言会尝试执行以下形式:u <- "g<-"( u, value=v )。如果没有事先定义好g<-()就执行语句会出现错误。要注意置换函数比原函数g()多一个具名参数。

 

    x[3] <- 8,赋值符左边不是变量名。所以它也是置换语句。下标操作是函数。函数"["()用于读向量元素,"[<-"()用于写操作。

> x <- c( 1, 2, 3, 4, 5 )

> "["( x, 3 )

[1] 3

> "[<-"( x, 2:4, value=12:14 )

[1]  1 12 13 14  5

 

 



  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值