作者rey123123 (小肥羊)
看板R_Language
標題[問題]複製data.table後,改column name
時間Wed Apr 23 10:44:39 2014
[問題類型]:
程式諮詢(我想用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)
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.109.22.225
※ 文章網址: http://webptt.com/m.aspx?n=bbs/R_Language/M.1398221081.A.778.html
1F:→ raysonic:names(b)<-c("rr","tt") 04/23 15:23
2F:→ rey123123:names(b) 沒有問題,但是在data.table大的時候會很慢 04/23 15:31
3F:→ rey123123:如果去讀data.table的說明文件他會建議你一律用setnames 04/23 15:32
4F:→ rey123123:去處理。 不過現在碰到這個問題就很尷尬.. 04/23 15:32
5F:→ rey123123:sorry. 自己找到解答了,是因為data.table為COW的方式 04/23 15:39
6F:→ rey123123:(copy on write) 所以用b=copy(a) 強制複製就可以了 04/23 15:40