[問題]複製data.table後,改column name

作者: rey123123 (小肥羊)   2014-04-23 10:44:39
[問題類型]:
程式諮詢(我想用R 做某件事情,但是我不知道要怎麼用R 寫出來)
[軟體熟悉度]:
入門~使用者
[問題敘述]:
各位好,我在使用data.table 的setnames function發現一個問題。
假設我有一個data.table: a 我讓b=a之後用setnames去改b的column names
結果a也會一起被改動。有辦法避免嗎? (因為a,b的rows都很多,原則上不希望用
names(b)去改b的column names)
[程式範例]:
library(data.table)
a=data.table(rr=1)
b=a
setnames(b,"rr","tt")
print(b)
print(a)
作者: raysonic   2014-04-23 15:23:00
names(b)<-c("rr","tt")
作者: rey123123 (小肥羊)   2014-04-23 15:31:00
names(b) 沒有問題,但是在data.table大的時候會很慢如果去讀data.table的說明文件他會建議你一律用setnames去處理。 不過現在碰到這個問題就很尷尬..sorry. 自己找到解答了,是因為data.table為COW的方式(copy on write) 所以用b=copy(a) 強制複製就可以了

Links booklink

Contact Us: admin [ a t ] ucptt.com