У меня есть ряд столбцов в data.frame
, из которых я хотел бы получить последнее значение, исключая любые NA.Для этого я использую функцию:
last_value <- function(x) tail(x[!is.na(x)], 1)
Я использую apply()
для работы этой функции по 13 столбцам для каждого наблюдения (по строке).
df$LastVal<-apply(df[,c(116, 561, 1006, 1451, 1896, 2341, 2786, 3231,
3676, 4121, 4566, 5011, 5456)], 1, FUN=last_value)
Моя проблема заключается в том, что выходные данные отображаются в виде списка 5336 (всего наблюдений), а не просто вектора последних значений по строке.Ответы, похоже, есть, но опять же в виде списка.Я использовал эту функцию раньше, и она работала нормально.Когда я str()
мои столбцы, они все целые числа.Может ли эта функция сработать, если нет значений и есть только NA?
Я должен добавить, что когда я unlist()
новую переменную, я получаю сообщение об ошибке, в котором говорится, что "замена имеет 4649 строк, данные имеют 5336", поэтому я думаю, что это может иметь какое-то отношение к NA.