我想在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
答案 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.
}