Меня попросили пройти стажировку, чтобы написать функцию, которая проходит через фрейм данных с датой и временем и возвращает несколько ячеек строк, которые были за 20 часов до этого.Приложено изображение части кадра данных;ID - номер животного, Дата - когда животное было замечено, Время - время, когда животное было замечено (например, 2 означает 2 часа), Lat и Long - координаты животного.
Затем функция вводит данные (идентификатор, дата + время) и возвращает координаты того места, где было животное за 20 часов до этого (столбцы 4 и 5 кадра данных).).
Сообщение об ошибке всегда одинаково:
Ошибка печати (X): объект 'X' не найден
Похоже,условия в предложении IF никогда не воссоединяются ...
Вот сценарий:
data <- data.frame(GPS_data_for_R) #data contains the excel spreadsheet
data$NewTime <- ymd_h(paste(data$Date,as.character(data$Time))) #a new column is created that merge the Date and the Time columns into a POSIXct format
# This function returns the coordinates of the animal 20h before, depending on the ID, Dtae and Time the user wants
Feeding_coordinates <- function (ID, NewTime){
for ( i in (1:length(data) ) ) {
if ( data[i,1] == ID & data[i,6] == as.POSIXct(NewTime,format="%Y-%m-%d %H:%M:%OS", tz="UTC")-72000){ #if the ID of the animal matches the request and if the NewTime - 20h also
data[i,4] <- X #then X takes the value of the Longitude
data[i,5] <- Y }# and Y the value of the Lagitude
}
print (X)
print (Y)
}
Я действительно понятия не имею, почему это не работает, поэтому любая помощь очень приветствуетсяЯ уже потратил на это столько времени!
Спасибо, Манон.