r用于遍历ChickWeight

时间:2019-04-15 05:06:36

标签: r

已更新的问题,希望现在更有意义

抱歉,我知道执行for循环并不有效,但这从本质上讲只是我需要做的一项测试。从本质上讲,我需要它通过ChickWeight循环运行,基于饮食,如果它是1、2、3或4,则需要在每个饮食都有自己的彩色线的绘图图上进行表示。

到目前为止,我所看到的似乎是正确的路线,但是发生的是所有行都更新为最终颜色:

plot(ChickWeight$Time, ChickWeight$weight, type = "n",
     main = "Weight vs Age", xlab = "Time (days)", ylab = "Weight (grames)"
     )

dietLength = length(ChickWeight$Diet)
for(i in 1:dietLength){
  if(ChickWeight$Diet[i] == 1){
    lines(ChickWeight$Time, ChickWeight$weight, col = "black")
  } else if(ChickWeight$Diet[i] == 2){
    lines(ChickWeight$Time, ChickWeight$weight, col = "blue")
  } else if(ChickWeight$Diet[i] == 3){
    lines(ChickWeight$Time, ChickWeight$weight, col = "green")
  } else if(ChickWeight$Diet[i] == 4){
    lines(ChickWeight$Time, ChickWeight$weight, col = "red")
  }
}

因此,如果您要运行上面的代码,则所有行都变成红色,我需要将其变为黑色,蓝色,绿色,红色(颜色与首选项无关)

1 个答案:

答案 0 :(得分:0)

根据所需结果,可以使用for循环以外的其他方法。然而,问题在于每种饮食中有多只小鸡。可以使用"fit"函数对变量进行分组,并在绘制图形之前汇总 weight ,而不是根据颜色定义新的变量。

dplyr

enter image description here