2016-03-03 72 views
0

我很困惑与以下内容: 使用data.table我创建一个数据框作为现有的副本。然后,我在新的数据框中创建一个新列......并且原始数据框也获得新列!DATA.TABLE:在数据集中创建新列,使其他列中的列相同?

df1<- c("A", "B", "C", "D", "E") 
df1<-data.table(df1) 
> head(df1) 
df1 
1: A 
2: B 
3: C 
4: D 
5: E 

df2 <- df1[] 
df2 <- df2[,col2:=10,] 

> head(df1) 
    df1 col2 
1: A 10 
2: B 10 
3: C 10 
4: D 10 
5: E 10 

请注意,第二头()是指原来的数据帧,这是我不希望任何新列。 我试过这个使用数据框(不data.table)和工作正常。

df1<- c("A", "B", "C", "D", "E") 
df1<-as.data.frame(df1) 
df2<-df1[] 
df2$col2<-10 

> head(df1) 
    df1 
1 A 
2 B 
3 C 
4 D 
5 E 

Plaese忠告。任何帮助wellcomed

+0

您需要使用'DF2 < - 副本(DF1)' – Jaap

回答

0

我们可以使用copy和问题将得到解决

df2 <- copy(df1) 
+0

曾提到已经在评论 – Jaap

+0

@Jaap我没有”看到你的意见,如果我看到时间,它只是8秒钟之前。只有在至少15秒或更长的时间内,我才会把它算在内。我的页面没有更新 – akrun

+0

好的。感谢您的提示....但为什么命令df2 < - df2 [,col2:= 10,]不工作的方式,它应该? – COLO

相关问题