【发布时间】:2016-09-16 07:42:44
【问题描述】:
所以我有这个子集:
Sbset<-cbind(v1,v2,v3,v4,...vn)
我想做:
ifelse(vi==9,NA,vi) for every vi, i=1,...,n
我想学习使用 for 循环来做到这一点(我知道我可以用其他方式做到这一点)。
所以我尝试了:
V<-colnames(Sbset)
for(i in seq_along(V)){
ifelse(Sbset[, Sbset[i]]==9,NA,Sbset[i])
}
但是,它什么也没做。 所以我知道我不了解如何使用 for 逻辑。 请你帮助我好吗 ? 谢谢你:)
【问题讨论】:
-
Sbset[, Sbset[i]]不是列,因为Sbset[i]不是列的名称。你需要names(Sbset)[i]。以后会有类似的变化。 -
一旦你知道如何使用
for循环方法,你可以看看R提供的更简单的方法,例如在这种情况下你可以只做is.na(Sbset) <- Sbset == 9 -
这不是 R 特定的问题。
标签: r if-statement for-loop subset