【发布时间】:2018-05-14 07:18:47
【问题描述】:
我将几个单词粘贴在一起,但我需要不带引号和索引的输出。为此,我使用以下代码:
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"?
有什么想法吗?
【问题讨论】:
-
我认为问题来自
cat,它迫使控制台打印文本127.0.0.1:14718/library/base/html/cat.html,你为什么要使用那个功能?注意:您也可以将paste(..., sep = "")减少为paste0(...)。如果您只是想将值分配给condition_2,那么只需使用condition_2<- noquote(paste0("S1_images", "[[1]]")) -
我正在使用
cat删除添加到我的代码输出中的[1]。如果我在没有cat的情况下运行代码,输出将是[1] S1_images -
好的,但是为什么你需要它消失呢?我很确定该数字只是 R 控制台的一部分-索引已调用的对象-并且没有“附加”到值
condition_2例如,如果您将 rep(coniditon_2, 1000) 传递给控制台,每行的开头给出一个数字,该数字是该行的第一个实例的位置 -
我已编辑问题以添加更多信息
-
你能不能逗我一下,试试
condition_2<- paste0("S1_images", "[[1]]")- 所以不要noquote或cat- 告诉我会发生什么