Ошибка создания переменной в R - PullRequest
0 голосов
/ 14 мая 2018

Я вставляю несколько слов вместе, но мне нужен вывод без кавычек и индекса.Для этого я использую следующий код:

condition_2<-cat(noquote(paste("S1_images", "[[1]]",sep="")))

Когда я запускаю его, я получаю правильный результат на терминале: S1_images[[1]].Но если я проверил проверку переменной condition_2, чтобы убедиться, что текст был сохранен, я получу следующий вывод

NULL

Это создает проблему, так как мне нужно, чтобыпеременная, которая будет использоваться в качестве ссылки позже в коде.

- EDIT -

Мне нужен индекс [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"?

Есть идеи?

1 Ответ

0 голосов
/ 14 мая 2018

Вы можете создать переменную, используя

condition_2 <- parse(text = paste0("S1_images", "[[1]]"))


, а затем при использовании этой переменной вы можете обернуть ее с помощью eval например

rasterize(training, eval(condition_2), field = test$_ID)
...