ggplot: Boxplot значений нескольких столбцов
вот тип данных, которые я импортирую как csv-файл:
RPID mm ID Time Freq Freq.1 Freq.2
RPO483 1 B6AC 5 23301 30512
RPO483 1 B6AC 25 19 17
RPO244 1 B6C 5 14889 20461
RPO244 1 B6C 25 81 86
RPO876 1 G3G3A 5 106760 59950 103745
RPO876 1 G3G3A 25 4578 38119 37201
RPO876 7 F3G3A 5 205803 148469 173580
RPO876 7 F3G3A 25 28648 30321 26454
RPO939 7 F3E324A 5 242285
RPO939 7 F3E324A 25 42837
RPO934 7 F3E325A 5 242001 129272 112371
RPO934 7 F3E325A 25 73057 58685 66582
для каждого " ID "я хотел бы создать boxplot для значений в Столбцах" Freq", " Freq.1 "и" Freq.2". Однако в настоящее время я могу успешно построить только одно значение Y - например:
dataset <- read.csv("~/R/dataset.csv")
library(ggplot2)
p <- ggplot(dataset)
p + geom_boxplot(aes(x=ID, y=Freq, color=mm))
Я пробовал что-то вроде y=c(Freq,Freq.1, Freq.2), но это приводит к следующему:
Error: Aesthetics must either be length one, or the same length as the dataProblems:ID
Я уверен, что есть простое решение для этого, но поскольку я очень новичок в R, я не могу рассказывать если это проблема неправильного формата данных, неправильного синтаксиса, неправильного пакета или чего-то еще.
любая помощь была бы очень признательна !
1 ответов
вам нужно изменить данные для построения графика.
сначала я прочитал ваши данные. Обратите внимание, что у вас есть некоторые на значения.
dat <- read.table(text = '
RPID mm ID Time Freq Freq.1 Freq.2
RPO483 1 B6AC 5 23301 30512
RPO483 1 B6AC 25 19 17
RPO244 1 B6C 5 14889 20461
RPO244 1 B6C 25 81 86
RPO876 1 G3G3A 5 106760 59950 103745
RPO876 1 G3G3A 25 4578 38119 37201
RPO876 7 F3G3A 5 205803 148469 173580
RPO876 7 F3G3A 25 28648 30321 26454
RPO939 7 F3E324A 5 242285
RPO939 7 F3E324A 25 42837
RPO934 7 F3E325A 5 242001 129272 112371
RPO934 7 F3E325A 25 73057 58685 66582',head=T, fill=T)
используя
library(reshape2)
dat.m <- melt(dat,id.vars='ID', measure.vars=c('Freq','Freq.1','Freq.2'))
library(ggplot2)
p <- ggplot(dat.m) +
geom_boxplot(aes(x=ID, y=value, color=variable))