将具有非NA值的每个非NA值设置为“他的左边”到NA
。
a <- c(3,2,3,NA,NA,1,NA,NA,2,1,4,NA)
[1] 3 2 3 NA NA 1 NA NA 2 1 4 NA
[1] 3 NA NA NA NA 1 NA NA 2 NA NA NA
IND <- !(is.na(a)) & data.table::rleidv(!(is.na(a))) %>% duplicated
a[IND]<- NA
a
必须有一个更好的解决方案......
答案 0 :(得分:4)
可替换地,
a[-1][diff(!is.na(a)) == 0] <- NA; a
# [1] 3 NA NA NA NA 1 NA NA 2 NA NA NA
答案 1 :(得分:2)
您可以执行一个简单的var n = 3;
var result;
for (i = 1; i <= n; i++) {
var result = '';
for(j = 1; j <= n; j++) {
if(j !== 1)
{
result += ' | ';
}
result += `${i} * ${j} = ${i * j}`;
}
console.log(result);
}
语句,在其中添加带有滞后向量ifelse
的向量。如果结果为NA,则该值应保持不变。否则,NA,即
a
答案 2 :(得分:2)
为了简洁起见......
a[!is.na(dplyr::lag(a))]<-NA
a
[1] 3 NA NA NA NA 1 NA NA 2 NA NA NA