亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

可以在R中通過引用嗎?

可以在R中通過引用嗎?

守著星空守著你 2019-11-12 14:55:01
您可以通過引用加上“ R”嗎?例如,在以下代碼中:setClass("MyClass",    representation(    name="character"    ))instance1 <-new("MyClass",name="Hello1")instance2 <-new("MyClass",name="Hello2")array = c(instance1,instance2)instance1arrayinstance1@name="World!"instance1array輸出是> instance1An object of class “MyClass”Slot "name":[1] "World!"> array[[1]]An object of class “MyClass”Slot "name":[1] "Hello1"[[2]]An object of class “MyClass”Slot "name":[1] "Hello2"但我希望是> instance1An object of class “MyClass”Slot "name":[1] "World!"> array[[1]]An object of class “MyClass”Slot "name":[1] "World!"[[2]]An object of class “MyClass”Slot "name":[1] "Hello2"可能嗎 ?
查看完整描述

3 回答

?
藍山帝景

TA貢獻1843條經驗 獲得超7個贊

沒有。


賦值語句中的對象是不可變的。R將復制對象,而不僅僅是引用。


> 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

(附帶條件:上面的陳述對R個原語,例如向量,矩陣)是正確的,對函數也是如此; 我不能肯定地說所有 R對象-包括大多數對象,以及大多數最常用的對象都適用。


如果您不喜歡這種行為,可以在R軟件包的幫助下選擇退出。例如,有一個名為R.oo的R包,它可以讓您模仿按引用傳遞行為。R.oo在CRAN上可用。


查看完整回答
反對 回復 2019-11-12
?
子衿沉夜

TA貢獻1828條經驗 獲得超3個贊

正如一些人之前指出的,這可以通過使用class對象來完成environment。存在使用environments 建立的正式方法。它稱為參考類,使您的工作變得非常簡單。檢查?setRefClass主條目幫助頁面。它還描述了如何在引用類中使用形式方法。


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"


查看完整回答
反對 回復 2019-11-12
  • 3 回答
  • 0 關注
  • 635 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號