В моем коде я должен создать объект присвоения некоторые значения, что-то вроде этого:Назначение с помощью Get() и пасту()
assign(paste("a","bis",sep="."),rep(NA,5))
тогда я должен заменить некоторые из них, как это:
get(paste("a","bis",sep="."))[1:2] <- 7:8
Но я получаю следующее сообщение об ошибке: «Ошибка в получении (« a »,« bis », sep =«. »)) [1: 2] < - 7: 8: цель назначения расширяется до неязычный объект ".
Конечно, приведенный выше код является упрощенной версией реального. Я пытаюсь создать цикл, который позволяет мне заменить в кадре данных результаты некоторых вычислений. Что-то вроде этого
assign(paste(country[j],"ext",sep="."),
data.frame(Year=rep(unique(get(country[j])$Year),each=24),
Age=rep(c(0,1,seq(5,110,5)),length(unique(get(country[j])$Year))),
mx=NA,qx=NA,lx=NA,Lx=NA,Tx=NA,ex=NA))
get(paste(country[j],".ext",sep=""))$mx[(24*i-24+1):(24*i)] <-
c(subset(get(country[j]),Age<=70 & Year==year)$mx,mx.ext)
в этом случае ошибка указывает на то, что: * Ошибка в ГЭТ (паста (страна [J], ".ext", сентябрь = "")) $ х [(24 * я - 24 + 1) :(24 *: не удалось найти функцию "получить < -" *
заранее спасибо
rawr немного дразнит меня, потому что эта проблема - немного мое домашнее животное. Вы нарисовали себя в углу, так сильно полагаясь на 'get' и' assign'. Однако часто бывает трудно помочь в этих обстоятельствах, потому что решение - это своего рода реорганизация всего вашего подхода, который часто выходит за рамки одного вопроса SO. – joran
@rawr [Здесь] (http://stackoverflow.com/a/36336614/324364) это, я думаю. – joran