我有一个带有虚拟字符的值列表," break",编码以表示换行符:
[11] "break" "-9.737715" "0.000091" "-0.000340" "-0.001318"
[16] "-38.103233" "-10.327046" "break" "27.469583" "break"
我需要:1)计算每次出现" break"之间的字符,以及2)将NAs插入不符合指定字符数的字符串(= 9)。举个例子,我上面代码的理想输出是:
[11] "break" "-9.737715" "0.000091" "-0.000340" "-0.001318"
[16] "-38.103233" "-10.327046" "NA" "NA" "NA"
[21] "break" "27.469583" "NA" "NA" "NA"
[26] "NA" "NA" "NA" "NA" "NA"
[31] "break"
无法在任何地方找到解决方案......帮助赞赏!
答案 0 :(得分:1)
其中一种方法可能是
CompletableFuture<List<Closest>> closest = distanceService.getClosestByZip("111111")
.exceptionally(ex -> {
System.out.println("From exceptionally");
return null;
})
.toCompletableFuture();
try {
List<Closest> list = closest.get();
Assert.assertEquals(2, list.size());
} catch (InterruptedException | ExecutionException e) {
e.printStackTrace();
Assert.fail("Exception was not caught");
}
示例数据:
y <- c()
cnt_betwn_break <- 0
for(i in 1:length(a)){
ifelse(a[i]=='break',
{if(!(cnt_betwn_break %in% c(0,9))) y <- c(y, rep(NA, 9 - cnt_betwn_break))
cnt_betwn_break <- 0},
cnt_betwn_break <- cnt_betwn_break + 1)
y <- c(y, a[i])
}
y
# [1] "break" "-9.737715" "0.000091" "-0.000340" "-0.001318" "-38.103233" "-10.327046" NA
# [9] NA NA "break" "27.469583" NA NA NA NA
#[17] NA NA NA NA "break"
答案 1 :(得分:0)
这几乎是你想要的 - 它在最后一次休息后添加了一组NA。 (如果您知道最后一个条目是休息,那么您可以在计算休息时间之前将其删除。如果最后一个条目不是休息,它应该有效。)
x <- c("break" ,"-9.737715", "0.000091", "-0.000340", "-0.001318", "-38.103233", "-10.327046", "break" , "27.469583", "break")
count_breaks = cumsum(x == "break")
unlist(tapply(x, count_breaks, function(.x) {
c(.x, rep(NA, 10 - length(.x)))
}))