[问题]复制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