R中的排序和绘图问题

R中的排序和绘图问题,r,R,我需要解决一个问题:使用R包中的ChickWeight数据,计算每只小鸡的平均重量。然后根据每种饮食的重量点鸡肉。然后用不同的颜色为每种饮食绘制这些有序的体重,以便每种饮食的小鸡体重顺序从最低到最高。对于数据符号,使用Chick标识 我已经尝试了一段时间,但仍然找不到答案。我试图创建一个新的数据框,但无法使其正常工作: WeightMean = with(ChickWeight, tapply(weight, list(Chick), mean)) a = as.data.frame(Weigh

我需要解决一个问题:使用R包中的ChickWeight数据,计算每只小鸡的平均重量。然后根据每种饮食的重量点鸡肉。然后用不同的颜色为每种饮食绘制这些有序的体重,以便每种饮食的小鸡体重顺序从最低到最高。对于数据符号,使用Chick标识

我已经尝试了一段时间,但仍然找不到答案。我试图创建一个新的数据框,但无法使其正常工作:

WeightMean = with(ChickWeight, tapply(weight, list(Chick), mean))
a = as.data.frame(WeightMean) 
a$Diet = c(rep(1, 20), rep(2, 10), rep(3, 10), rep(4, 10))
a$Diet = ifelse(a$Diet == 1, "Diet1", ifelse(a$Diet == 2, "Diet2", ifelse(a$Diet == 3, "Diet3", "Diet4")))

a_diet1 = a[1:20,]
a_diet2 = a[21:30,]
a_diet3 = a[31:40,]
a_diet4 = a[41:50,]

sort(a_diet1)
sort(a_diet2)
sort(a_diet3)
sort(a_diet4)

a$WeightMean = c(a_diet1, a_diet2, a_diet3, a_diet4)
ChickWeight.a_diets = a_diets

plot(a, col=factor(a$Diet))
我认为解决这个问题的最好方法是使用ggplot。我真的需要帮助!!非常感谢你

一个例子:

library(data.table); library(ggplot2)
# to convert ChickWeight to data table
df = as.data.table(as.data.frame(ChickWeight)) 
# to get the average weight based on Diet, Chick grouping
df2 = df[, list(weight_ave = mean(weight)), by=list(Diet, Chick)]
# to sort and add indices to column "idx" for easier plotting
df2 = df2[order(Diet, weight_ave)][, idx := 1:nrow(df2)]
# code to plot in ggplot2
ggplot(data=df2, aes(x=idx, y=weight_ave)) +  
  theme_bw() +
  geom_point(aes(colour=Diet)) +
  geom_text(aes(label=Chick), size=4, vjust=-0.5) +
  theme(axis.text.x = element_blank(),
        axis.ticks.x = element_blank()) +
  xlab("Chick")

基本图形非常容易实现:

out <- aggregate(weight ~ Chick + Diet,data=ChickWeight, FUN=mean)
out <- out[order(out$Diet,out$weight),]

plot(out$weight,type="n")
grid()
text(
     out$weight,
     labels=as.character(out$Chick),
     col=as.numeric(out$Diet),
     cex=0.7
)
out