Celem jest sprawdzenie, czy wartość w indeksie i wynosi 1, a następnie dokonać ostatnich sześciu wpisy jako 1.Jak skonstruować tę zmienną binarną w R?
x <- c(0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1)
## Required output
y <- c(1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1)
## Attempt
for(j in seq_along(x)){
if(x[j] == 1){
for(i in (j-6):j)
x[i] = 1
}}
mógłbyś pomóc rozwiązać ten lub lepsze podejście?
Dzięki.
Dzięki za odpowiedź. Czy mógłbyś wyjaśnić, dlaczego moja pętla zwróciła wektor y jak wszystkie 1? Dlaczego potrzebuję tutaj ramki danych? – Anusha
Nie poprawiłeś, jeśli j-6 był mniejszy niż 1. Również data.frame jest łatwiejsza w obsłudze. – rnso
+1. Czy byłoby to możliwe, aby zastosować tę funkcję, a następnie zastosować? Ciekawe, w jaki sposób zostanie zdefiniowany sapply lub lapply dla tej pętli for. – Anusha