我想为每个部分重复绘图

时间:2015-07-22 21:51:50

标签: r plot

我想在R中重复绘图 我的主要命令是

data<-read.csv(file.choose(),header=TRUE)
t=data[,1]
PCI=data[,2]
plot(t,PCI,xlim=c(0,30))
boxplot(t,PCI,xlim=c(0,30))
# some starting values
alpha=1
betha=1
theta=1
# do the fit
fit = nls(ydata ~ alpha-beta*exp((-theta*(xdata^gama))),      start=list(alpha=80,beta=15,theta=15,gama=-2))

ydata=data[,2]
xdata=data[,1]
new = data.frame(xdata = seq(min(xdata),max(xdata),len=200))
lines(new$xdata,predict(fit,newdata=new))
resid(fit)
qqnorm(resid(fit))

fitted(fit)
resid(fit)
xdata=fitted(fit) 
ydata=resid(fit)
plot(xdata,ydata,xlab="fitted values",ylab="Residuals")
abline(0, 0)

我的第一列是节数,我的第二列是t = x,我的第三列是PCI = y。我想单独为每个部分重复我的绘图命令。但我认为我不能使用循环,因为每个部分中的数据数量不相等。 我非常感谢你的帮助,因为我是R的新人。

SecNum  t   PCI
961 1   94.84
961 2   93.04
961 3   91.69
961 11  80.47
961 12  79.26
961 13  77
962 1   90.46
962 2   90.01
962 3   86.88
962 4   86.36
962 5   84.56
962 6   85.11
963 1   91.33
963 2   90.7
963 3   86.46
963 4   88.47
963 5   81.07
963 6   84.07
963 7   82.55
963 8   73.58
963 9   71.85
963 10  83.8
963 11  82.16

1 个答案:

答案 0 :(得分:0)

要为数据中的每个不同SecNum重复代码,请执行以下操作:

sections <- unique(data$SecNum)

for (sec in sections) {
    # just get the data for that section
    data.section <- subset(data, SecNum == sec)

    # now do all your plotting commands. `data.section` is the
    #  subset of `data` that corresponds to this SecNum only.
}