我有一组由不同参与者生成的数据,他们通过给出值1-5来评分不同的视力障碍。 (该表有大约2.7k行)
列Participant
是文本(50个不同的ID),列Impairment
是文本(9种不同的类型),列Score
是数字(1-5)。
我正在尝试针对Participant
显示Score
的每个Impairment
生成散点图。这是我一直在使用的代码:
for (i in unique(Master$Participant)) {
d <- subset(Master, Master$Participant == i)
scatter <- ggplot(d, aes(impairment, TechnicalQuality))
scatter + stat_sum(aes(size = ..n..))
}
它不起作用。
我尝试使用以下代码:
for (i in unique(Master$Participant)) {
d <- subset(Master, Master$Participant == i)
plot(d$impairment, d$TechnicalQuality, type ="p")
}
但这不是我想要的。 (我想在散点图上标记独特得分的总和)
我无法弄清楚为什么第一个不起作用而第二个不起作用!任何人都有任何想法?
提前致谢
以下是示例数据:
M_Participant <- c("A001", "A002", "A010", "B002", "B002", "B003", "A010", "B002")
M_Impairment <- c ("H0", "H1", "H3", "H2", "H4", "H2", "H3", "H0")
M_Score <- c(1, 2, 4, 3, 5, 4, 3, 1)
Master <- data.frame(Participant = M_Participant, Impairment = M_Impairment,
Score= M_Score)
答案 0 :(得分:0)
在ggplot
中换取print
绘图调用,这在循环或函数中生成ggplot
/ lattice
图时是必需的。
for (i in unique(Master$Participant)) {
d <- subset(Master, Master$Participant == i)
scatter <- ggplot(d, aes(Impairment, Score))
print(scatter + stat_sum(aes(size = ..n..)))
}
请注意,您还可以执行以下操作:
library(ggplot2)
p <- ggplot(Master, aes(Impairment, Score)) + geom_point()
p + facet_wrap(~ Participant)
或者lattice
:
library(lattice)
xyplot(Score ~ Impairment | Participant, data=Master, pch=20, col=1,
scales=list(alternating=FALSE, tck=c(1, 0)))