Существует ли методология назначения целочисленных значений факторам в R? - PullRequest
1 голос
/ 13 апреля 2020

Я довольно новичок в R, но мне было интересно, есть ли определенный c способ группировки / анализа целочисленных значений из моего фрейма данных, т. Е.

Образец X: int 1 2 3 4 5

Образец Y: int 6 7 8 9 10

Образец Z: int 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, et c.

Я не нашел чистого способа сделать это. Другие попытки включали в себя индивидуальный ввод имени каждого образца и ручную привязку его к уровням фактора, но это не увенчалось успехом.

Буду признателен за любой совет!

1 Ответ

2 голосов
/ 13 апреля 2020

Если я правильно понял, вы хотите, чтобы каждое x, y и z наблюдений было связано с уровнем и построено по уровням.

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()

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...