是否有一种方法可以将整数值分配给 R 中的因子

Is there a methodology to assign integer values to factors in R

我对 R 很陌生,但想知道是否有一种特定的方法可以从我的数据框中 group/analyze 整数值,即

样本 X:整数 1 2 3 4 5

样本 Y:整数 6 7 8 9 10

样本 Z:整数 11 12 13 14 15

并将这些分配给我的因子变量,该变量具有相应的级别数(本例中为 5),在此示例中称为 lvl 1、lvl 2、lvl 3、lvl 4、lvl 5。目标是能够绘制每个级别的观察结果,例如 lvl 1 有观察结果 1、6 和 11/lvl 2 有 2、7 和 12,等等

我找不到干净的方法来做到这一点。其他尝试包括单独输入每个样本的名称并手动将其链接到因子水平,但这并不顺利。

如有任何建议,我们将不胜感激!

如果我没理解错的话,您希望每个 xyz 观察值与一个级别相关联并按级别绘制。

library(ggplot2)
library(reshape2)

df = data.frame(x = 1:5, y = 6:10, z = 11:15)

df$level = factor(paste0("lvl",1:5))

df
df
#  x  y  z level
# 1 1  6 11  lvl1
# 2 2  7 12  lvl2
# 3 3  8 13  lvl3
# 4 4  9 14  lvl4
# 5 5 10 15  lvl5

使用长格式数据进行绘图更容易(使用 ggplot2 包)。我在这里使用 reshape2::melt 但您可以使用 tidyr::pivot_long

找到等效的解决方案
df <- reshape2::melt(df, id.vars = "level")
df
   level variable value
1   lvl1        x     1
2   lvl2        x     2
3   lvl3        x     3
4   lvl4        x     4
5   lvl5        x     5
6   lvl1        y     6
7   lvl2        y     7
8   lvl3        y     8
9   lvl4        y     9
10  lvl5        y    10
11  lvl1        z    11
12  lvl2        z    12
13  lvl3        z    13
14  lvl4        z    14
15  lvl5        z    15

终于可以出图了。假设您想要每个级别的分数:

ggplot(df, aes(x = level, y = value)) + geom_point()