R 获取具有要绘制的级别的因子

R 获取具有要绘制的级别的因子,r,R,我有以下data.frame: 看起来是这样的: chr locus ES1-5 ES6-13 ES14-26 ES27-38 SA1-13 SA14-25 1A 1145442 0.02613333 0.0323333333 0.07023333 -0.1327666667 -0.005866667 0.009933333 1A 1158042 0.09286667 0.0387666667 0.07556667 -

我有以下data.frame:

看起来是这样的:

 chr   locus      ES1-5       ES6-13     ES14-26       ES27-38       SA1-13     SA14-25
 1A 1145442 0.02613333 0.0323333333  0.07023333 -0.1327666667 -0.005866667  0.009933333
 1A 1158042 0.09286667 0.0387666667  0.07556667 -0.1200333333 -0.051133333 -0.036033333
 1A 1158055 0.04901667 0.0118166667 -0.01578333  0.0005166667 -0.031383333 -0.014183333
 1A 1229616 0.04996667 0.0004666667 -0.01873333  0.0083666667 -0.029433333 -0.010633333
 1A 1236254 0.07583333 0.0800333333  0.12363333 -0.1127666667 -0.013866667 -0.152866667
 1A 1238114 0.05146667 0.0120666667 -0.02073333  0.0012666667 -0.029733333 -0.014333333
我想将列名colnames[3:8]‘ES1-5’‘ES6-13’‘ES14-26’‘ES27-38’‘SA1-13’‘SA14-25’转换为一个因子,该因子具有因字符向量colnames[3:8]的字符差异而产生的相应级别。我尝试过将data.frame转换为单个列中的字符向量,但是df$chr df$locus列的顺序不再正确


有人能帮我解决这个问题吗?我的最终目标是在使用lattice软件包进行绘图时,将此因子的级别分组。请注意,由于colnames[3:8]中每列的值都是数字,我不希望它们是级别,而是保持数字

我会使用tidyverse从宽移动到长。我还包括了一个可能来自晶格的直方图作为示例

library(tidyverse)
##I name your original data frame df
x <- df %>% gather(factors, value, -chr, -locus) %>%
                    mutate(factors = factor(factors))

##Example plot
lattice::histogram(~x$value|x$factors)

对不起,在我的情况下,您打算如何计算值?值指的是每个因子列的值
library(tidyverse)
##I name your original data frame df
x <- df %>% gather(factors, value, -chr, -locus) %>%
                    mutate(factors = factor(factors))

##Example plot
lattice::histogram(~x$value|x$factors)