当我在R中编写以下简单的for循环时:
newlist <- c("A", "B", "C")
for (i in newlist) {
print(newlist[i])
}
我得到以下输出:
[1] NA
[1] NA
[1] NA
我对R和编码一般都是新手吗?有人可以向我解释为什么它不会逐个打印这些字母吗?
答案 0 :(得分:7)
您的for
循环正在迭代newlist的值,而不是它们的索引。也就是说,您将i
设置为"A"
,然后设置"B"
等,然后尝试按值newlist
进行子集,这会返回错误,因为您只能子集使用索引或名称。你可能想要的是:
for (i in 1:length(newlist)){
print (newlist[i]))
}
或者更简单地说,
for (i in newlist){
print(i)
}