Ошибка в temp.tc замена [i] имеет нулевую длину

#r

#r

Вопрос:

У меня нет опыта в кодировании, поэтому, пожалуйста, извините за любые ошибки, которые я могу допустить, пытаясь объяснить эту проблему. У меня есть код, написанный для R, который должен возвращать некоторые кривые. Код считывает csv-файл в качестве входных данных.

Я получаю следующую ошибку:

 Error in temp.tc[i] <- (as.numeric(unique(unlist(regmatches(dur, temp))))) : 
  

замена имеет нулевую длину

Похоже, что это та часть кода, которая выдает мне ошибку:

 for(i in seq (1,rl,1))
{
dur <- ddf[[c]][i] #steps through each cell in the duration column
dur1 <- toString(dur)  #converts the cell into a string
dur2 <- unlist(strsplit(dur1, split="")) #splits the string into individual characters
dur3 <- strtoi(dur2[1]) #converts the characters back into integers

#If a value is found, proceed through if statements to identify key words 
if(is.na(dur3)== FALSE)
{
temp <- gregexpr("[0‐9] ", dur)  #removes strings from duration

#checks if duration has units of minutes 
if(grepl(min, dur) == TRUE)
{
  #removes words from the cell and stores duration (minutes) into a vector 
  temp.tc[i] <- (as.numeric(unique(unlist(regmatches(dur, temp)))))
  n1 <- append(n1, i)
}

#checks if duration has units of hours
if((grepl(hr, dur) == TRUE) || (grepl(ho, dur) == TRUE))
{
  #removes words from the cell and stores duration (minutes) into a vector 
  temp.tc[i] <- (as.numeric(unique(unlist(regmatches(dur, temp)))))*60
  n2 <-i
}

#checks if duration has units of days 
if(grepl(day, dur) == TRUE)
{
  #removes words from the cell and stores duration (minutes) into a vector 
  temp.tc[i] <- (as.numeric(unique(unlist(regmatches(dur, temp)))))*24*60 
  n2 <-i #defines row where duration ends
}
}
}
  

Я был бы очень признателен за любые советы по устранению неполадок!

Спасибо.

Комментарии:

1. Вы уверены, что это regmatches(dur, temp) всегда что-то возвращает? Первое, что я бы попробовал, это добавить print(c(dur, temp) и print(regmatches(dur, temp)) , чтобы посмотреть, какой шаг вызывает ошибку.

2. Вот что я получил: print(c (dur, temp)) [[1]] [1] 8 [[2]] [1] -1 attr(, «совпадение. длина») [1] -1 > печать (регулярные соответствия (dur, temp)) [[1]] символ(0)