#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)