7

R を使用して、シーケンス内のどの値が欠落しているかを効率的に特定したいと考えています。私はそれを行う方法の以下の例を書きました。もっと良い方法があるはずです。誰か助けてくれませんか?

data.list=c(1,2,4,5,7,8,9)

full.list=seq(from = 1, to = 10, by =1)

output <- c()
for(i in 1:length(full.list)){
    holder1 <- as.numeric(any(data.list == i))
    output[i] <- holder1
}

which(output == 0)
4

4 に答える 4

3
full.list[!full.list %in% data.list]
于 2013-06-23T18:30:26.570 に答える
2

match(と同様%in%)を使用する別のオプション

full.list[!match(full.list,data.list,nomatch=FALSE)]
[1]  3  6 10
于 2013-06-23T18:50:11.717 に答える
0

使用grep():

grep(paste("^", data.list, "$", sep = "", collapse = "|"), full.list, invert = TRUE)

あなたは「怠惰」で使用することができますcollapse = ^|$が、正確な精度のために上記を使用してください。

使用grepl():

full.list[!grepl(paste("^", data.list, "$", sep = "", collapse = "|"), full.list)]

于 2016-05-24T01:34:59.367 に答える