我有兩個if語句的for循環。它一切正常,除了我想添加通過第二個if語句的值傳遞給變量v1。我首先分配變量,然後變量充滿了許多NA和我期待的三個值。但我只想要變量中的那三個值。R - 在兩個語句之後將值寫入變量
因此,不是隻寫滿足要求的i
,而是將每個i
寫入變量。
v1 <- c()
for(i in seq_along(y$values)){
if(y$lengths[i] < 500 && y$values[i] == TRUE){
y$values[i] <- FALSE
}
if(y$lengths[i] > 500 && y$values[i] == TRUE){
print(y$lengths[i])
v1[[i]] <- y$lengths[i]
}
}
我看看適用的功能,但無法真正弄清楚如何使用這兩個如果陳述適用。
該數據是一個大的邏輯向量。我在該矢量上使用y <- rle(vec)
,這給我y$lengths
(1和幾十萬之間的所有數)和y$values
(真和假)。
期望的結果是RLE長度,其中> 500和真實是真實的:
[1] 5120
[1] 16630
[1] 10188
了打印命令給我就好了。
dput(y$length)
給我:
c(129719L, 1L, 79337L, 2L, 4L, 1L, 3L, 1L, 2L, 1L, 1L, 1L, 4L,
2L, 2L, 3L, 2L, 1L, 2L, 2L, 2L, 2L, 2L, 1L, 1L, 5L, 1L, 3L, 1L,
6L, 1L, 5120L, 1L, 39L, 1L, 12L, 1L, 121L, 1L, 14L, 1L, 6L, 1L,
3L, 1L, 3L, 1L, 2L, 1L, 6L, 1L, 11L, 1L, 9L, 1L, 10L, 2L, 6L,
1L, 2L, 2L, 1L, 1L, 7L, 2L, 4L, 1L, 2L, 1L, 4L, 1L, 3L, 2L, 5L,
1L, 5L, 4L, 8L, 1L, 4L, 1L, 4L, 2L, 2L, 2L, 9L, 1L, 2L, 1L, 2L,
1L, 3L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 1L, 3L, 3L, 1L,
7L, 1L, 1L, 1L, 1L, 2L, 6L, 2L, 2L, 1L, 2L, 4L, 3L, 1L, 1L, 1L,
4L, 3L, 2L, 1L, 5L, 5L, 2L, 2L, 3L, 1L, 2L, 1L, 1L, 1L, 2L, 1L,
4L, 2L, 2L, 1L, 1L, 1L, 4L, 1L, 1L, 3L, 4L, 2L, 1L, 1L, 13L,
1L, 3L, 2L, 3L, 1L, 9L, 1L, 1L, 1L, 1L, 2L, 3L, 1L, 4L, 1L, 13L,
1L, 3L, 1L, 4L, 1L, 8L, 1L, 7L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 3L,
1L, 4L, 1L, 2L, 2L, 5L, 1L, 1L, 2L, 2L, 1L, 1L, 1L, 1L, 4L, 3L,
3L, 2L, 1L, 1L, 2L, 1L, 1L, 2L, 3L, 1L, 2L, 1L, 4L, 1L, 9L, 2L,
6L, 1L, 14L, 1L, 2L, 1L, 6L, 1L, 16630L, 7L, 1L, 3L, 2L, 3L,
1L, 4L, 3L, 4L, 1L, 1L, 2L, 7L, 1L, 1L, 1L, 1L, 1L, 8L, 1L, 5L,
1L, 6L, 1L, 1L, 3L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 2L,
1L, 1L, 1L, 6L, 1L, 5L, 1L, 2L, 2L, 3L, 1L, 5L, 2L, 3L, 1L, 2L,
2L, 10L, 1L, 4L, 1L, 2L, 2L, 1L, 2L, 1L, 1L, 1L, 1L, 7L, 3L,
1L, 1L, 4L, 1L, 1L, 1L, 10L, 1L, 2L, 2L, 3L, 1L, 3L, 5L, 2L,
3L, 1L, 1L, 2L, 1L, 1L, 3L, 1L, 4L, 3L, 1L, 1L, 1L, 1L, 2L, 2L,
1L, 4L, 2L, 1L, 1L, 3L, 1L, 1L, 2L, 1L, 4L, 1L, 1L, 3L, 4L, 2L,
1L, 2L, 1L, 1L, 3L, 1L, 2L, 1L, 2L, 1L, 3L, 1L, 2L, 1L, 3L, 1L,
1L, 1L, 3L, 2L, 12L, 1L, 3L, 2L, 2L, 1L, 1L, 2L, 7L, 1L, 2L,
1L, 1L, 2L, 1L, 1L, 7L, 1L, 2L, 1L, 4L, 1L, 7L, 1L, 4L, 1L, 1L,
1L, 6L, 1L, 6L, 1L, 6L, 2L, 14L, 1L, 5L, 1L, 9L, 1L, 1L, 1L,
1L, 2L, 39L, 1L, 20L, 1L, 1L, 1L, 6L, 1L, 9L, 2L, 5L, 1L, 7L,
1L, 16L, 1L, 22L, 1L, 1L, 1L, 10L, 1L, 20L, 1L, 18L, 1L, 20L,
1L, 3L, 1L, 2L, 1L, 2L, 1L, 5L, 1L, 9L, 1L, 3L, 1L, 3L, 1L, 15L,
1L, 10L, 1L, 40L, 1L, 30L, 1L, 111L, 1L, 314L, 1L, 9L, 1L, 10188L,
4L, 88L, 1L, 8L, 1L, 1L, 1L, 1L, 1L, 15L, 1L, 24L, 1L, 1L, 2L,
3L, 1L, 16L, 1L, 3L, 1L, 4L, 2L, 2L, 2L, 1L, 2L, 5L, 2L, 2L,
7L, 1L, 1L, 3L, 2L, 3L, 7L, 2L, 1L, 1L, 6L, 1L, 4L, 2L, 2L, 1L,
2L, 1L, 1L, 1L, 13L, 1L, 2L, 1L, 2L, 1L, 3L, 1L, 3L, 1L, 4L,
1L, 16L, 1L, 4071L, 5L, 162912L, 1L, 6L, 1L, 280986L)
請'輸入()'您的數據幷包含所需結果的示例 –
仍然與你的問題混淆!你只想要那些大於500的y $長度? –
將'v1 [[i]] < - y $ lengths [i]'改爲'v1 < - c(v1,y $ lengths [i])''。或者,更好的'y $長度[y $長度> 500]' – ExperimenteR