Я новичок в программировании в R (или вообще), и я застрял на проблеме в течение нескольких дней. Извините, если этот вопрос уже существует в той или иной форме, но я выгляжу как можно лучше и не могу ничего найти.Подмножество данных с назначением Функция в R
У меня есть несколько наборов данных, которые называются pop1, pop2, pop3 и т. Д., И я пытаюсь присвоить значение нуль указанному подмножеству изнутри цикла for. Методом проб и ошибок, я обнаружил, что код:
subset(get(paste("pop", 1, sep = "")), ind == 46, select = -ind)
возвращает подмножество Я искал, но когда я пытаюсь:
for (i in 1:3) {
assign(subset(get(paste("pop", i, sep = "")), ind == 46, select = -ind), 0)
}
Я получаю сообщение об ошибке:
#Error in assign(subset(get(paste("pop", i, sep = "")), ind == 46, select = -ind), :
#invalid first argument
мне кажется, что функция правопреемника не будет принимать подмножества в качестве первого аргумента, поскольку ни одна из следующих работ либо:
assign(pop1[46, -1], 0)
assign(pop1$trait1, 0)
assign(subset(pop1, ind == 46), 0)
Есть ли способ, которым я могу сделать эту работу? Большое спасибо, и дайте мне знать, будет ли полезной дополнительная информация.
Поместите все всплывающие окна в объект списка, а затем используйте lapply, чтобы избежать проблем с «получить назначение». – zx8754
Один трюк заключается в создании командной строки и использовании 'eval (parse (text = thetext))'. 'a <- matrix (1: 6,3,2)', а затем 'eval (parse (text = sprintf ("% s [% d,% d] <- 0 "," a ", 1,1))) '. Трудно набирать R-коды на смартфоне. – chan1142