左派任务如何运作?

时间:2016-01-19 04:34:16

标签: r

我刚学会了一种在apply函数中使用"0" "jump" "7" "jump" "14" "print 14" "defeat" 的新方法 类似的东西:

'length<-'

创建一个4x6矩阵,

l<- list(c(1,1,2,2,2),c(1,2),c(1,2,2,2),c(1,2,2))
sapply(l, `length<-`, 6)

这本身就很酷。但是我意识到了

     [,1] [,2] [,3] [,4]
[1,]    1    1    1    1
[2,]    1    2    2    2
[3,]    2   NA    2    2
[4,]    2   NA    2   NA
[5,]    2   NA   NA   NA
[6,]   NA   NA   NA   NA

不会更改`length<-`(l[[1]],6) ,因此

l[[1]]

不会更改lapply(l, `length<-`, 6)

我想知道是否每个接受分配给它的值的函数都是如此,例如l'dim<-'等。如果是这样,那个行为是否被编码在R解析器?

1 个答案:

答案 0 :(得分:1)

length(x) <- 6不只是"length<-"(x, 6)而是x <- "length<-"(x, 6)。这就是lhs函数在R中的工作方式。请参阅`levels<-`( What sorcery is this?

中的第一个答案

在您的第一个示例sapply中创建一个新矩阵,您可以显示我们。在第二个示例中,"length<-"创建一个长度为6的新向量,但不会将其分配给任何名称。