如何将NA设置为一个数据帧中每隔三个其他数据?

| 我无法在网上找到明确答案的另一个相当基本的问题: 假设我有一个像这样的数据集
dat<-c(1,2,3,4,5,6,7,8,9,10)
我想将数据更改为
datnew<-c(1,2,3,NA,NA,NA,7,8,9,NA)
基本上只是用一个大数据帧中的NA替换每3个数据。 谢谢,     
已邀请:
通过ѭ2创建一个合适的索引:
R> foo <- 1:10
R> foo
 [1]  1  2  3  4  5  6  7  8  9 10
R> ind <- rep(c(FALSE, TRUE), each=3)
R> ind
 [1] FALSE FALSE FALSE  TRUE  TRUE  TRUE
R> foo[ind] <- NA
R> foo
 [1]  1  2  3 NA NA NA  7  8  9 NA
R> 
回收可以在这里为您提供帮助,因为您创建的索引会根据数据向量的需要得到频繁应用。 编辑:同时在上方显示
ind
。     
我以为有更好的方法,但正如德克指出的那样,我错了。在下面我固定了答案,但我的确比德克的答案差。
foo[c(seq(4,length(foo),6),seq(5,length(foo),6),seq(6,length(foo),6))] <- NA
如果它确实是一个数据框,则必须指定要在其上应用的行,并使用另一条命令来获取元素数(例如dim(dat)[1])。     

要回复问题请先登录注册