如何将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 教师闺蜜祝福语简短