看板 R_Language 關於我們 聯絡資訊
[問題類型]: 程式諮詢(我想用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://www.ptt.cc/bbs/R_Language/M.1398221081.A.778.html
raysonic:names(b)<-c("rr","tt") 04/23 15:23
rey123123:names(b) 沒有問題,但是在data.table大的時候會很慢 04/23 15:31
rey123123:如果去讀data.table的說明文件他會建議你一律用setnames 04/23 15:32
rey123123:去處理。 不過現在碰到這個問題就很尷尬.. 04/23 15:32
rey123123:sorry. 自己找到解答了,是因為data.table為COW的方式 04/23 15:39
rey123123:(copy on write) 所以用b=copy(a) 強制複製就可以了 04/23 15:40