将名称应用于dataframe列变量
我有一个数据框,其中有563列,我想在其中使用长度为561的字符向量(Cnames)在前2列中更改列变量的名称。我尝试使用:将名称应用于dataframe列变量
colnames(df[,3:563]) <- Cnames
但是这里没有任何反应。但如果我尝试改变所有列变量的名称如下,然后重命名作品:
CoName <- c("char0", "char01", Cnames)
colnames(df) <- CoName
谁能告诉我,为什么出现这种情况?提前致谢。
你可以做
colnames(df)[3:563] <- Cnames
这将正常工作。
我不熟悉R内存模型,但我怀疑colnames(df[,3:563])
的调用返回一个新的临时对象,它与原始数据帧无关。另一方面,colnames(df)
将允许您直接更新数据框中的引用。
或使其一般'colnames(df)[3:ncol(df)] user1436187 2014-08-27 09:42:14
请参阅[这里](http://stackoverflow.com/questions/23427925/difference-between-namesdf1-and-namesdf1)为什么会发生这种情况 – 2014-08-27 09:44:38
我试过,但得到一个错误:错误在colnames(DF)[,3:563] user3922546 2014-08-27 09:37:57
上的下标不正确的数目再次看代码,你有一个','太多。 – martin 2014-08-27 09:40:43
或者只是'colnames(df)[ - seq_len(2)] 2014-08-27 09:43:03