我刚学会了一种在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解析器?
答案 0 :(得分:1)
length(x) <- 6
不只是"length<-"(x, 6)
而是x <- "length<-"(x, 6)
。这就是lhs函数在R中的工作方式。请参阅`levels<-`( What sorcery is this?
在您的第一个示例sapply
中创建一个新矩阵,您可以显示我们。在第二个示例中,"length<-"
创建一个长度为6的新向量,但不会将其分配给任何名称。