在 R 中定义数据框列的级别

Defining the levels of dataframe columns in R

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

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轴顺序。我以正确的方式接近这个吗?如果是这样,我错过了什么,如果不是,最好的方法是什么?

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

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

使用

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

如果您使用 levels()<-,您将只需要 rename/replace 个关卡名称;你不重新订购它们。这当然不是你想要的他的行为。重新排序它们的最好方法是只使用 factor()