[英]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.