定义R中的dataframe列的级别

问题描述 投票:0回答:2

我正在尝试重新定义当我使用cbind从其他数据帧的选择列创建数据帧时分配的级别。数据帧包含整数,rownames是字符串:

outTable<-data.frame(cbind(contRes$wt, bRes$log2FoldChange, cRes$log2FoldChange, dRes$log2FoldChange, aRes$log2FoldChange), row.names=row.names(aRes))

使用以下内容,我得到列的级别:

levels(as.factor(colnames(outTable)))
[1] "F" "N" "RH" "RK" "W"  

我希望通过传递以下内容来改变该顺序:

levels(as.factor(colnames(outTable)))<-c("W", "RK", "RH", "F", "N")

但我得到错误:

could not find function "as.factor<-"

最终目的是在ggplot2中设置箱线图的X轴顺序。我是以正确的方式接近这个吗?如果是这样,我错过了什么,如果不是,那么最好的方法是什么?

r dataframe r-factor
2个回答
1
投票

使用

factor(colnames(outTable), levels=c("W", "RK", "RH", "F", "N"))

如果你使用levels()<-,你只需重命名/替换级别名称;你不重新订购它们。这当然不是他想要的行为。重新订购它们的最佳方法是使用factor()


0
投票

您可以在as.factor函数中将级别指定为参数

factor(colnames(outTable), levels = c("W", "RK", "RH", "F", "N"), ordered=T)
© www.soinside.com 2019 - 2024. All rights reserved.