R (CVS 파일에서 읽음)로 이러한 데이터에 대한 막대도를 만들고 싶습니다.
Experiment_Name MetricA MetricB Just_X 2 10 Just_X_and_Y 3 20
다음 다이어그램을 갖습니다.
나는 초보자이며 시작하는 방법조차 모른다.
R (CVS 파일에서 읽음)로 이러한 데이터에 대한 막대도를 만들고 싶습니다.
Experiment_Name MetricA MetricB Just_X 2 10 Just_X_and_Y 3 20
다음 다이어그램을 갖습니다.
나는 초보자이며 시작하는 방법조차 모른다.
답변:
나는 당신이 R로 read.table()
또는 짧은 read.csv()
기능을 사용하여 데이터를 가져올 수 있다고 가정합니다 . 그런 다음 원하는 요약 기능을 적용 할 수 있습니다 (예 : table
또는 mean
).
x <- replicate(4, rnorm(100))
apply(x, 2, mean)
또는
x <- replicate(2, sample(letters[1:2], 100, rep=T))
apply(x, 2, table)
아이디어는 표시하려는 요약 값에 대한 행렬 또는 테이블로 끝나는 것입니다.
그래픽 출력의 barplot()
경우 옵션이 있는 기능을 확인하십시오 ( beside=TRUE
예 :
barplot(matrix(c(5,3,8,9),nr=2), beside=T,
col=c("aquamarine3","coral"),
names.arg=LETTERS[1:2])
legend("topleft", c("A","B"), pch=15,
col=c("aquamarine3","coral"),
bty="n")
이 space
인수는 병렬 막대 사이에 여분의 공간을 추가하는 데 사용할 수 있습니다.
여기 ggplot 버전 :
library(ggplot2)
df = melt(data.frame(A=c(2, 10), B=c(3, 20),
experiment=c("X", "X & Y")),
variable_name="metric")
ggplot(df, aes(experiment, value, fill=metric)) +
geom_bar(position="dodge")
나는 reshape2를 반영하기 위해 teucer의 답변을 업데이트하고 싶었습니다.
library(ggplot2)
library(reshape2)
df = melt(data.frame(A=c(2, 10), B=c(3, 20),
experiment=c("X", "X & Y")),
variable.name="metric")
ggplot(df, aes(experiment, value, fill=metric)) +
geom_bar(position="dodge",stat="identity")
teucer의 답변은 reshape2가 variable_name 대신 variable.name을 사용하기 때문에 reshape2에서 "eval (expr, envir, enclos) : Error in eval (expr, envir, enclos) : object 'metric'not found"오류를 생성합니다.
또한 geom_bar 함수에 stat = "identity"를 추가해야한다는 것을 알았습니다. 그렇지 않으면 "Error : 변수를 y에 매핑하고 stat ="bin "을 사용하기 때문입니다."