问题描述
我创建了一个保存图片的类。我为班级创建了两个对象(两张图片)。我想要一个循环打印所有图片。
```{r echo=FALSE,comment=""}
# Generate class
setClass("Picture",slots=list(id="numeric",path="character"))
# Add first picture
full_file_path <- "testphoto.JPG"
pic_obj <- new("Picture",id=1,path=full_file_path)
# Add second picture
full_file_path <- "parrot.jpeg"
pic_obj <- new("Picture",id=2,path=full_file_path)
# Loop trough pictures (how? for? foreach? while?)
cat("ID=",pic_obj@id,"\n")
cat("Path=",pic_obj@path,"\n")
```
打印:
ID= 2
Path= parrot.jpeg
但是我想要这个:
ID= 1
Path= testphoto.JPG
ID= 2
Path= parrot.jpeg
解决方法
正如评论中提到的,这两行
pic_obj <- new("Picture",id=1,path=full_file_path)
和
pic_obj <- new("Picture",id=2,path=full_file_path)
创建一个名为 pic_obj
的对象,然后覆盖它,所以第一个丢失了。相反,请尝试
pic_obj_1 <- new("Picture",path=full_file_path)
pic_obj_2 <- new("Picture",path=full_file_path)
或
pic_obj <- new("Picture",id=1:2,path=c(full_file_path_1,full_file_path_2))
如果您选择第二个选项,您需要确保您为 picture
类编写的任何方法(函数)使用向量参数。