Хотя кажется, что есть более эффективные способы справиться с этим, если вы действительно действительно хотите использовать подход "eval (parse (paste ("), то вам не хватает текстового флага.
parse предполагает, что его первым аргументом является путь к файлу, который он затем будет анализировать. В вашем случае вы не хотите, чтобы он читал файл для анализа, вы хотите напрямуюпередайте ему какой-то текст для анализа. Итак, ваш переписанный код (в том, что выше называлось отвратительной формой) будет
letters=c('a','b','c')
x <- array(seq(1,18,by=1),dim=c(3,2,3))
for (i in 1:length(x[1,1,])) {
eval(parse(text=paste(letters[i],"<-mean(x[,,",i,"])",sep="")))
}
В дополнение к тому, что вы не укажете "text =", вам не хватает нескольких скобокна правой стороне, чтобы закрыть ваши синтаксические анализ и операторы eval.
Похоже, что ваша проблема решена, но для людей, которые достигают этой страницы, которые действительно хотят использовать eval (parse (paste, я хотел уточнить.