如何将NA顺序转换为R向量中的单个NA?
有时,序列中缺少值,R程序将其记录为NA(不可用)。在这种情况下,我们可能希望用单个NA值替换连续的NA记录。可以使用is.na和diff函数来完成此操作,如以下示例所示。
示例
x1<-sample(c(NA,1),20,replace=TRUE) x1
输出结果
[1] 1 1 NA 1 NA 1 NA NA 1 1 NA NA NA NA 1 NA 1 1 1 NA
示例
x1[!(is.na(x1)&diff(c(FALSE,is.na(x1)))==0)]
输出结果
[1] 1 1 NA 1 NA 1 NA 1 1 NA 1 NA 1 1 1 NA
示例
x2<-sample(c(NA,2,3),200,replace=TRUE) x2
输出结果
[1] NA NA 2 NA 2 2 NA 3 NA NA NA 3 NA 2 NA 2 3 3 NA NA NA 3 NA NA 2 [26] 2 NA NA 3 2 3 NA 2 NA 3 2 3 2 2 3 3 NA 3 2 3 NA 3 2 2 NA [51] NA NA NA 2 NA NA 3 2 NA 3 2 3 NA 3 3 2 NA 2 3 NA 3 2 3 2 3 [76] NA NA 2 NA 3 NA NA 3 3 2 2 2 3 NA NA 3 2 3 NA 2 2 NA NA 2 3 [101] NA NA 3 3 3 NA NA 3 2 2 2 NA NA 2 NA 3 3 NA 3 NA 2 NA NA 3 NA [126] NA 2 3 2 3 2 NA 2 3 3 2 NA NA NA 3 2 2 2 3 NA NA 2 3 2 NA [151] 2 NA 2 3 2 NA NA NA NA NA 3 NA 3 3 NA 3 2 2 2 2 NA 3 2 NA 2 [176] 3 3 2 3 3 NA 3 NA 2 3 3 2 2 3 2 2 2 NA NA 2 3 NA 3 NA 3
示例
x2[!(is.na(x2)&diff(c(FALSE,is.na(x2)))==0)]
输出结果
[1] NA 2 NA 2 2 NA 3 NA 3 NA 2 NA 2 3 3 NA 3 NA 2 2 NA 3 2 3 NA [26] 2 NA 3 2 3 2 2 3 3 NA 3 2 3 NA 3 2 2 NA 2 NA 3 2 NA 3 2 [51] 3 NA 3 3 2 NA 2 3 NA 3 2 3 2 3 NA 2 NA 3 NA 3 3 2 2 2 3 [76] NA 3 2 3 NA 2 2 NA 2 3 NA 3 3 3 NA 3 2 2 2 NA 2 NA 3 3 NA [101] 3 NA 2 NA 3 NA 2 3 2 3 2 NA 2 3 3 2 NA 3 2 2 2 3 NA 2 3 [126] 2 NA 2 NA 2 3 2 NA 3 NA 3 3 NA 3 2 2 2 2 NA 3 2 NA 2 3 3 [151] 2 3 3 NA 3 NA 2 3 3 2 2 3 2 2 2 NA 2 3 NA 3 NA 3
示例
x3<-sample(c(5,NA),200,replace=TRUE) x3
输出结果
[1] NA NA NA NA NA NA 5 5 5 5 5 NA NA 5 NA NA NA NA 5 5 5 NA NA NA 5 [26] NA 5 NA 5 5 5 NA NA NA NA 5 NA NA NA NA 5 5 5 5 NA 5 5 5 NA 5 [51] NA NA 5 NA NA NA NA 5 5 5 5 5 5 NA NA 5 5 NA 5 5 NA NA NA 5 5 [76] 5 NA 5 NA 5 5 5 5 5 5 NA 5 5 NA 5 5 5 NA 5 5 5 NA NA NA 5 [101] 5 5 5 5 5 NA NA 5 NA NA NA 5 NA NA 5 5 5 5 5 NA NA NA 5 5 5 [126] NA 5 NA NA NA 5 5 NA NA 5 NA NA NA 5 NA NA 5 NA 5 NA NA 5 NA NA 5 [151] 5 NA 5 5 5 NA 5 5 5 NA 5 5 5 5 NA NA NA NA NA NA NA 5 NA NA 5 [176] 5 NA 5 5 5 NA 5 5 5 NA 5 NA NA 5 5 5 5 NA NA 5 NA NA NA 5 5
示例
x3[!(is.na(x3)&diff(c(FALSE,is.na(x3)))==0)]
输出结果
[1] NA 5 5 5 5 5 NA 5 NA 5 5 5 NA 5 NA 5 NA 5 5 5 NA 5 NA 5 5 [26] 5 5 NA 5 5 5 NA 5 NA 5 NA 5 5 5 5 5 5 NA 5 5 NA 5 5 NA 5 [51] 5 5 NA 5 NA 5 5 5 5 5 5 NA 5 5 NA 5 5 5 NA 5 5 5 NA 5 5 [76] 5 5 5 5 NA 5 NA 5 NA 5 5 5 5 5 NA 5 5 5 NA 5 NA 5 5 NA 5 [101] NA 5 NA 5 NA 5 NA 5 NA 5 5 NA 5 5 5 NA 5 5 5 NA 5 5 5 5 NA [126] 5 NA 5 5 NA 5 5 5 NA 5 5 5 NA 5 NA 5 5 5 5 NA 5 NA 5 5
示例
x4<-sample(c(499,NA,501),200,replace=TRUE) x4
输出结果
[1] NA 501 501 501 501 NA 499 NA 499 NA 501 499 499 NA NA NA 499 501 [19] 501 NA NA 499 499 501 501 499 499 501 NA NA NA 501 501 501 499 NA [37] 501 501 499 499 499 NA NA 499 499 499 499 NA 501 501 501 NA 501 501 [55] 499 501 499 499 501 NA NA 501 501 NA 499 501 499 NA 499 501 499 NA [73] NA 501 501 501 501 501 NA 501 499 501 499 501 499 501 NA 499 NA NA [91] 501 NA NA 501 499 501 NA NA NA NA NA NA 499 501 501 501 NA 501 [109] NA 499 NA 501 499 NA 499 499 501 499 499 499 501 NA 501 NA NA 501 [127] NA 499 501 NA 501 501 NA NA 501 NA 499 499 499 NA NA 501 501 501 [145] 501 NA 499 NA NA 501 501 NA 501 NA NA 499 499 501 NA 501 NA NA [163] 501 NA 499 NA 499 499 501 501 501 NA 501 501 NA NA 501 501 501 499 [181] 499 501 499 501 501 NA 501 NA 499 NA NA 499 501 NA 499 501 NA 501 [199] NA 501
示例
x4[!(is.na(x4)&diff(c(FALSE,is.na(x4)))==0)]
输出结果
[1] NA 501 501 501 501 NA 499 NA 499 NA 501 499 499 NA 499 501 501 NA [19] 499 499 501 501 499 499 501 NA 501 501 501 499 NA 501 501 499 499 499 [37] NA 499 499 499 499 NA 501 501 501 NA 501 501 499 501 499 499 501 NA [55] 501 501 NA 499 501 499 NA 499 501 499 NA 501 501 501 501 501 NA 501 [73] 499 501 499 501 499 501 NA 499 NA 501 NA 501 499 501 NA 499 501 501 [91] 501 NA 501 NA 499 NA 501 499 NA 499 499 501 499 499 499 501 NA 501 [109] NA 501 NA 499 501 NA 501 501 NA 501 NA 499 499 499 NA 501 501 501 [127] 501 NA 499 NA 501 501 NA 501 NA 499 499 501 NA 501 NA 501 NA 499 [145] NA 499 499 501 501 501 NA 501 501 NA 501 501 501 499 499 501 499 501 [163] 501 NA 501 NA 499 NA 499 501 NA 499 501 NA 501 NA 501
示例
x5<-sample(c(1025,NA),100,replace=TRUE) x5
输出结果
[1] NA 1025 NA NA 1025 1025 1025 NA NA NA 1025 1025 1025 NA NA [16] NA 1025 NA 1025 1025 1025 NA 1025 NA NA 1025 1025 1025 NA 1025 [31] 1025 1025 NA 1025 NA NA 1025 1025 1025 NA NA NA 1025 NA NA [46] 1025 NA NA NA NA 1025 NA 1025 1025 1025 1025 NA 1025 NA 1025 [61] 1025 1025 NA NA 1025 1025 NA 1025 NA NA 1025 NA NA NA NA [76] NA NA 1025 1025 1025 1025 1025 1025 1025 NA NA NA 1025 1025 NA [91] NA NA 1025 NA NA 1025 NA 1025 1025 1025
示例
x5[!(is.na(x5)&diff(c(FALSE,is.na(x5)))==0)]
输出结果
[1] NA 1025 NA 1025 1025 1025 NA 1025 1025 1025 NA 1025 NA 1025 1025 [16] 1025 NA 1025 NA 1025 1025 1025 NA 1025 1025 1025 NA 1025 NA 1025 [31] 1025 1025 NA 1025 NA 1025 NA 1025 NA 1025 1025 1025 1025 NA 1025 [46] NA 1025 1025 1025 NA 1025 1025 NA 1025 NA 1025 NA 1025 1025 1025 [61] 1025 1025 1025 1025 NA 1025 1025 NA 1025 NA 1025 NA 1025 1025 1025
热门推荐
10 对患者生日祝福语简短
11 结婚祝福语简短装备
12 周岁祝福语学生文案简短
13 订婚领证祝福语简短精辟
14 导师获奖祝福语大全简短
15 新婚购房祝福语简短精辟
16 牛年祝福语简短的爱人
17 送芒果的祝福语简短
18 送给学长毕业祝福语简短