在R dataframes中使用order在列名被更改后失败,如何恢复?

li9yvcax  于 2023-03-27  发布在  其他
关注(0)|答案(1)|浏览(104)

设置 Dataframe

mta<-c("ldall","nold","ldall","nold","ldall","nold","ldall","nold")
mtb<-c(491, 28581,241,5882,365,7398,512,10887)
df1<-data.frame(mta,mtb)

我可以用正常的方式订购我的dataframe。这工作得很好。

df1[order(mtb),]

但是如果我改变列的名字

names(df1)<-c("mta1","mtb1")
df1[order(mtb1),]

这会产生错误
订单错误(mtb1):未找到对象“mtb1”。
如果我在指令中使用旧的列名,它可以工作,尽管输出显示新的列名。

df1[order(mtb),]

如果我把名字改回原来的名字,命令看起来就能正常工作。有人能解释一下吗?order使用的是隐藏版本的列名吗?

dauxcl2d

dauxcl2d1#

这个应该有用如果有用就告诉我

mta<-c("ldall","nold","ldall","nold","ldall","nold","ldall","nold")
mtb<-c(491, 28581,241,5882,365,7398,512,10887)
df1<-data.frame(mta,mtb)

# Change column names
colnames(df1) <- c("mta1","mtb1")

# Sort column mtb1 from the data frame
df1[order(df1$mtb1), ]

   mta1  mtb1
3 ldall   241
5 ldall   365
1 ldall   491
7 ldall   512
4  nold  5882
6  nold  7398
8  nold 10887
2  nold 28581

相关问题