簡體   English   中英

為什么`[<-`不能重新排序數據框列?

[英]Why doesn't `[<-` work to reorder data frame columns?

為什么這不起作用?

df <- data.frame(x=1:2, y = 3:4, z = 5:6)
df[] <- df[c("z", "y", "x")]
df
#>   x y z
#> 1 5 3 1
#> 2 6 4 2

請注意,名稱是原始順序,但數據本身已更改順序。

這很好用

df <- data.frame(x=1:2, y = 3:4, z = 5:6)
df[c("z", "y", "x")]
#>   z y x
#> 1 5 3 1
#> 2 6 4 2

提取完成后,索引中的值將替換為名稱。 例如,替換下面的第一項不會影響元素的名稱:

x <- c(a=1, b=2)
x[1] <- 3
x
a b 
3 2 

在數據框中,您以相同的方式替換了值。 值已更改但名稱保持不變。 要重新排序數據框,請避免使用提取框架。

df <- df[c("z", "y", "x")]

只是不要把[]放在df之后它會按你的意願做...

df <- data.frame(x=1:2, y = 3:4, z = 5:6)
df <- df[c("z", "y", "x")]
df
#  z y x
#1 5 3 1
#2 6 4 2

如果你質疑為什么,Pierre Lafortune的評論是正確的。

作為附注,我還想將commat添加到單獨的維度:

df <- df[,c("z", "y", "x")]

我發現它更合適。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM