【发布时间】:2019-08-06 19:54:32
【问题描述】:
对于以下数据集,我可以为每个 ID 创建图。有六个 ID,每个重复 4 次。
data=data.frame(ID=rep(1:6,each=4), y.value=c(1:24), x.value=seq(0,11.5, by=0.5))
setwd("C:/Users/mnudd/Desktop")
pdf(file = "myplot.pdf")
for( id.no in 1:6){
plot(data$y.value[data$ID==id.no]~data$x.value[data$ID== id.no],xlim=c(0,12),ylim=c(0,25),type="l",col="black",
xlab="time", ylab= "",main = paste("ID number", id.no), data=data)
points(data$y.value[data$ID==id.no]~data$x.value[data$ID==id.no])
}
dev.off()
现在我想为以下子集 data1 创建相同的图,
data1=data[data$ID %in% c(1,3,4),]
setwd("C:/Users/mnudd/Desktop")
pdf(file = "myplot1.pdf")
for( id.no in 1:length(unique(data1$ID))){
plot(data1$y.value[data1$ID==id.no]~data1$x.value[data1$ID== id.no],xlim=c(0,12),ylim=c(0,25),type="l",col="black",
xlab="time", ylab= "",main = paste("ID number", id.no), data=data)
points(data1$y.value[data1$ID==id.no]~data1$x.value[data1$ID==id.no])
}
dev.off()
从上面的代码中,我期望 pdf 文件中有三个情节,每个情节标题应该对应于第一个情节标题应该是的 id 号 ID 号 1、ID 号 3 和 ID 号 4。
很遗憾,子集数据的循环不起作用。如果子集很大,是否有任何通用循环或函数?
感谢您的帮助。
【问题讨论】:
-
如果子集很大,是否有任何通用循环或函数?你不是已经应用了循环吗?问题是什么?您还提到 我期待三个情节 ...您没有得到预期的结果吗?
-
子集数据的循环不起作用? @Parfait
-
将
1:length(unique(data1$ID))更改为unique(data1$ID) -
是的,它正在工作。谢谢