3 回答

TA貢獻(xiàn)1843條經(jīng)驗(yàn) 獲得超7個(gè)贊
沒有。
賦值語(yǔ)句中的對(duì)象是不可變的。R將復(fù)制對(duì)象,而不僅僅是引用。
> v = matrix(1:12, nrow=4)
> v
[,1] [,2] [,3]
[1,] 1 5 9
[2,] 2 6 10
[3,] 3 7 11
[4,] 4 8 12
> v1 = v
> v1[,1] # fetch the first column
[1] 1 2 3 4
(附帶條件:上面的陳述對(duì)R個(gè)原語(yǔ),例如向量,矩陣)是正確的,對(duì)函數(shù)也是如此; 我不能肯定地說所有 R對(duì)象-包括大多數(shù)對(duì)象,以及大多數(shù)最常用的對(duì)象都適用。
如果您不喜歡這種行為,可以在R軟件包的幫助下選擇退出。例如,有一個(gè)名為R.oo的R包,它可以讓您模仿按引用傳遞行為。R.oo在CRAN上可用。

TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超3個(gè)贊
正如一些人之前指出的,這可以通過使用class對(duì)象來完成environment。存在使用environments 建立的正式方法。它稱為參考類,使您的工作變得非常簡(jiǎn)單。檢查?setRefClass主條目幫助頁(yè)面。它還描述了如何在引用類中使用形式方法。
例
setRefClass("MyClass",
fields=list(
name="character"
)
)
instance1 <- new("MyClass",name="Hello1")
instance2 <- new("MyClass",name="Hello2")
array = c(instance1,instance2)
instance1$name <- "World!"
輸出量
> instance1
Reference class object of class "MyClass"
Field "name":
[1] "World!"
> array
[[1]]
Reference class object of class "MyClass"
Field "name":
[1] "World!"
[[2]]
Reference class object of class "MyClass"
Field "name":
[1] "Hello2"
- 3 回答
- 0 關(guān)注
- 642 瀏覽
添加回答
舉報(bào)