Hy大家。
初学者试图理解一个循环。这是我尝试使用的脚本:
## List of species
vctsp <- levels(data.baobab$Species)`
nspecies <- length(vcstp)`
absp <- c("Ad","Ab","Ax","An","Al","Ap","Ac","Ar")`
## Loop on species
for (i in 1:nspecies) {
expr <- paste("data.",absp[i], <- data.baobab[data.baobab$Species==\"",vctsp[i],"\",]",sep="")
eval(parse(text=expr))
}
## Stack World Clim Data
myExpl_37 <- stack("./gis.data/bio_37/bio1_37.tif",
"./gis.data/bio_37/bio4_37.tif",
"./gis.data/bio_37/bio12_37.tif")
出现问题:
for (i in 1: nspecies) {
expr1 <- paste("clim.", absp [i], " <- extract(myExpl_37, data.baobab[data.baobab$Species==\"",vctsp[i],"\",]",sep="")
eval(parse(text=expr1))
}
Erreur dans parse(text = expr1) : <text>:2:0: fin d'entrée inattendu(e)
1: clim.Ad <- extract(myExpl_37,data.baobab[data.baobab$Species=="A_digitata",]^`
这个循环应该是这样的(如果我手动完成):
clim.Az <- extract(myExpl_37,data.Az)
答案 0 :(得分:0)
如果您使用字符串操作生成代码,打印代码以确保代码正确无误是一个好主意。在这种情况下:
cat(expr1)
# clim.Ad <- extract(myExpl_37, data.baobab[data.baobab$Species=="A_diitata",]
注意最后缺少)
?
您现在需要"\",])"
{。}}。