我有一個數據框,其中有563列,我想在其中使用長度爲561的字符向量(Cnames)在前2列中更改列變量的名稱。我嘗試使用:將名稱應用於dataframe列變量
colnames(df[,3:563]) <- Cnames
但是這裏沒有任何反應。但如果我嘗試改變所有列變量的名稱如下,然後重命名作品:
CoName <- c("char0", "char01", Cnames)
colnames(df) <- CoName
誰能告訴我,爲什麼出現這種情況?提前致謝。
我有一個數據框,其中有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)] < - Cnames' – 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] < - Cnames: 矩陣 – user3922546 2014-08-27 09:37:57
上的下標不正確的數目再次看代碼,你有一個','太多。 – martin 2014-08-27 09:40:43
或者只是'colnames(df)[ - seq_len(2)] < - Cnames' – 2014-08-27 09:43:03