2015-09-28 2 views
3

Когда я пишу следующий простой цикл в R:For Loop в R Возвращает NA в печати

newlist <- c("A", "B", "C") 
for (i in newlist) { 
    print(newlist[i]) 
} 

Я получаю следующий вывод:

[1] NA 
[1] NA 
[1] NA 

Я довольно новыми для R и кодирование вообще ?, может кто-нибудь объяснить мне, почему он не будет печатать буквы один за другим?

ответ

7

Ваш цикл for выполняет итерирование значений newlist, а не их индексов. То есть вы устанавливаете i на "A", затем "B" и т. Д., А затем пытаетесь подмножить newlist значением, которое возвращает ошибку, потому что вы можете подмножать только индексы или имена. То, что вы, вероятно, хотите есть:

for (i in 1:length(newlist)){ 
    print (newlist[i])) 
} 

Или, проще говоря,

for (i in newlist){ 
    print(i) 
} 
Смежные вопросы