在 R 中创建变量时出错
Error creating variable in R
我正在将几个单词粘贴在一起,但我需要没有引号和索引的输出。为此,我使用以下代码:
condition_2<-cat(noquote(paste("S1_images", "[[1]]",sep="")))
当我 运行 它时,我在终端上得到了正确的结果:S1_images[[1]]
。但是,如果我检查变量 condition_2
以确保文本已保存,我会得到以下输出
NULL
这造成了一个问题,因为我需要在稍后的代码中将该变量用作参考。
-- 编辑--
我需要索引 [1]
,因为我想在另一行中使用 condition_2
作为参考。如果我不删除它,就会发生这种情况:
training_r<-rasterize(training,condition_2, field=test$_ID)
哪个输出是:
Error in (function (classes, fdef, mtable) :
unable to find an inherited method for function ?rasterize? for signature ?"SpatialPolygonsDataFrame", "noquote"?
如果我删除它(使用 cat
),会发生以下情况:
> training_r<-rasterize(training,condition_2, field=test$ID)
Error in (function (classes, fdef, mtable) :
unable to find an inherited method for function ?rasterize? for signature ?"SpatialPolygonsDataFrame", "NULL"?
有什么想法吗?
您可以使用
创建一个变量
condition_2 <- parse(text = paste0("S1_images", "[[1]]"))
然后在使用这个变量时,你可以用 eval
包装它,例如
rasterize(training, eval(condition_2), field = test$_ID)
我正在将几个单词粘贴在一起,但我需要没有引号和索引的输出。为此,我使用以下代码:
condition_2<-cat(noquote(paste("S1_images", "[[1]]",sep="")))
当我 运行 它时,我在终端上得到了正确的结果:S1_images[[1]]
。但是,如果我检查变量 condition_2
以确保文本已保存,我会得到以下输出
NULL
这造成了一个问题,因为我需要在稍后的代码中将该变量用作参考。
-- 编辑--
我需要索引 [1]
,因为我想在另一行中使用 condition_2
作为参考。如果我不删除它,就会发生这种情况:
training_r<-rasterize(training,condition_2, field=test$_ID)
哪个输出是:
Error in (function (classes, fdef, mtable) :
unable to find an inherited method for function ?rasterize? for signature ?"SpatialPolygonsDataFrame", "noquote"?
如果我删除它(使用 cat
),会发生以下情况:
> training_r<-rasterize(training,condition_2, field=test$ID)
Error in (function (classes, fdef, mtable) :
unable to find an inherited method for function ?rasterize? for signature ?"SpatialPolygonsDataFrame", "NULL"?
有什么想法吗?
您可以使用
创建一个变量condition_2 <- parse(text = paste0("S1_images", "[[1]]"))
然后在使用这个变量时,你可以用 eval
包装它,例如
rasterize(training, eval(condition_2), field = test$_ID)