Как создать новый столбец с повторяющимися значениями на основе другого столбца?

голоса
-1

Вот то, что я в настоящее время. У меня есть столбец с именем «test1M», который имеет значение 0 или 1. Если значение равно 1, я хочу, чтобы установить следующие 20 значений в колонке «test1Mxx» в значение 1.

Если я запускаю этот код, я получаю ошибку (ошибки, если (данные $ test1M [х] == 1) {: аргумент нулевой длины).

Что лучший способ для меня, чтобы сделать это? Код довольно повторяющийся, так что я хотел бы свести к минимуму, что, если это возможно. Если есть способ, чтобы превратить это в функцию, которая была бы предпочтительнее, чтобы я мог изменить количество значений (например, может быть следующие 25 значений, или 40 значений, и т.д.)

for(x in data$test1){
  if(data$test1[x]==1){
    data$test2[x+1]=1
    data$test2[x+2]=1
    data$test2[x+3]=1
    data$test2[x+4]=1
    data$test2[x+5]=1
    data$test2[x+6]=1
    data$test2[x+7]=1
    data$test2[x+8]=1
    data$test2[x+9]=1
    data$test2[x+10]=1
    data$test2[x+11]=1
    data$test2[x+12]=1
    data$test2[x+13]=1
    data$test2[x+14]=1
    data$test2[x+15]=1
    data$test2[x+16]=1
    data$test2[x+17]=1
    data$test2[x+18]=1
    data$test2[x+19]=1
    data$test2[x+20]=1}
 }
Задан 27/11/2018 в 15:12
источник пользователем
На других языках...                            


1 ответов

голоса
1

Ваш цикл не работает , потому что xэто значение data$test1, не показатель его. Вам нужно что - то вроде:

data$test2 <- data$test1
for (x in seq_along(data$test1))
  if (data$test1[x] == 1) data$test2[x + 1:20] <- 1
Ответил 27/11/2018 в 15:38
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more