我正在尝试为我的R在线课程解决练习。我们有一个向量B:
B<-c(seq(10,75,by=1))
我想将所有可被5整除的元素(没有余数,例如5,10,15)设置为NA。然后矢量看起来像(NA,11,12,13,14,NA,......)。我的想法是使用模运算符%%和替换函数:
replace((B%/%5==0),B,NA)
当我这样做时,向量返回以下输出:
[1] TRUE FALSE FALSE FALSE FALSE TRUE FALSE FALSE FALSE NA NA NA
NA
[14] NA NA NA NA NA NA NA NA NA NA NA NA
NA
[27] NA NA NA NA NA NA NA NA NA NA NA NA
NA
[40] NA NA NA NA NA NA NA NA NA NA NA NA
NA
[53] NA NA NA NA NA NA NA NA NA NA NA NA
NA
[66] NA NA NA NA NA NA NA NA NA NA
有人可以建议解决这个问题吗?
答案 0 :(得分:3)
您可以使用:
B[ B %% 5 == 0 ] = NA
答案 1 :(得分:0)
这是使用ifelse()
语句的另一种方法:
B <- ifelse(B %% 5 == 0, NA, B)
这些ifelse()
语句可以通过强大的方式链接在一起,一次性将多个条件应用于同一个向量!
例如,如果我们想将B矢量中的所有偶数转换为NA,那么我们可以这样做:
B <- ifelse(B %% 5 == 0, NA, ifelse(B %% 2 == 0, NA, B))
可以找到有关ifelse()
功能的更多信息here。