我有一个包含563列的数据框,我希望使用长度为561的字符向量(Cnames)更改除前2列之外的所有列变量的名称。我尝试使用:
colnames(df[,3:563]) <- Cnames
但这里没有任何事情发生。但是,如果我尝试按如下所示更改所有列变量的名称,则重命名工作:
CoName <- c("char0", "char01", Cnames)
colnames(df) <- CoName
有人能告诉我为什么会这样吗?提前谢谢。
答案 0 :(得分:3)
你可以做到
colnames(df)[3:563] <- Cnames
哪个会奏效。
我不熟悉R内存模型,但我怀疑对colnames(df[,3:563])
的调用会返回一个与原始数据帧无关的新临时对象。另一方面,colnames(df)
将允许您直接更新数据框中的引用。