對此我無法找到一個明確的答案,網上另一個相當基本的問題:如何將NA設置爲數據幀中的每3個其他數據?
假設我有這樣的
dat<-c(1,2,3,4,5,6,7,8,9,10)
我想的DAT改爲
datnew<-c(1,2,3,NA,NA,NA,7,8,9,NA)
數據集基本上只是在大數據框中用NA來替換每3個數據。
感謝,
對此我無法找到一個明確的答案,網上另一個相當基本的問題:如何將NA設置爲數據幀中的每3個其他數據?
假設我有這樣的
dat<-c(1,2,3,4,5,6,7,8,9,10)
我想的DAT改爲
datnew<-c(1,2,3,NA,NA,NA,7,8,9,NA)
數據集基本上只是在大數據框中用NA來替換每3個數據。
感謝,
通過rep()
創建一個適當的索引:
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
如果真的是一個數據幀,那麼你必須指定要aplly並使用另一個命令來獲得元素數量的行(如暗淡(DAT)[1])。
這個答案是錯誤的。你正在設置**單個**元素,OP要求三個塊。 – 2011-04-21 19:18:45
@Dirk,你是對的!抱歉。我會編輯我的答案。 – 2011-04-21 20:36:55