блокпост с отфильтрованными значениями - PullRequest
0 голосов
/ 12 февраля 2020

Я новичок в кодировании и хочу создавать боксы на основе моих данных.

Для этого я хочу отфильтровать блокпост по заданным значениям c:

Моя структура данных называется "Auswertungen" и имеет такую ​​структуру:

Participant  Donation  Treatment  Manipulation
1             0           1          passed
2            0.4          2          passed
3            0.2          2          failed
4             0           3          failed 
5            0.3          3          passed

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

Я нашел что-то вроде

boxplot(Donation ~ Treatment) 
with(subset(Auswertungen, Manipulation == "passed"), boxplot(Donation ~ Treatment))

, но вторая формула точно показывает мне те же самые боксы, что и раньше, так что я думаю, что подмножество не работает?

Ответы [ 2 ]

0 голосов
/ 12 февраля 2020

Если ваши данные примерно структурированы следующим образом:

set.seed(222)
Donation <- abs(rnorm(20))
Treatment <- sample(1:3, 20, replace = T)
Manipulation <- sample(c("passed", "failed"), 20, replace = T)
df <- data.frame(Donation, Treatment, Manipulation)
df
      Donation Treatment Manipulation
1  1.487757090         3       passed
2  0.001891901         2       failed
3  1.381020790         1       failed
4  0.380213631         3       passed
5  0.184136230         1       failed
6  0.246895883         3       passed
7  1.215560910         3       failed
8  1.561405098         1       failed
9  0.427310197         2       passed
10 1.201023506         3       passed
11 1.052458495         2       passed
12 1.305063566         2       failed
13 0.692607634         3       failed
14 0.602648854         3       failed
15 0.197753074         2       failed
16 1.185874517         2       passed
17 2.005512989         3       passed
18 0.007509885         2       passed
19 0.519490356         2       failed
20 0.746295471         2       failed

И вы хотите иметь два боксплота, вы можете сначала определить двухпанельный макет:

par(mfrow = c(1,2))

И затем заполните в нем два поля, первый из которых не отфильтрован:

boxplot(df$Donation ~ df$Treatment)

, а второй отфильтрован при условии, что Manipulation=="passed":

boxplot((df$Donation[df$Manipulation=="passed"] ~ df$Treatment[df$Manipulation=="passed"]))

Результат будет примерно таким: enter image description here

0 голосов
/ 12 февраля 2020

Понял, извините.

boxplot(Donation ~ Treatment)
boxplot(Donation[Manipulation == "passed"] ~ Treatment[Manipulation == "passed"]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...