2016-11-23 1 views
0

Моего dataframe выглядит следующим образом:в R, как извлечь имя столбца первого значения не NA в каждой строке моего фрейма?

COLNAMES:

state city  name_of_company 11/22 11/23 11/24 
ga atlanta  name    NA  NA   1 
ny newyork  name    NA  .75  1 

Я пытаюсь создать новый столбец, содержащие даты, которые соответствуют первому ненулевого значения NA в каждой строке. Я не знаю, как это сделать, поэтому любая помощь очень ценится.

+0

После первого не-NA будет больше значений, отличных от NA. Значения, отличные от NA, представляют собой бизнес-транзакции, поэтому дата первого значения - это дата, когда компания открылась - это то, что мне нужно – Chris

ответ

0

Нет max.col? Я разочарован. ;-)

names(dat[4:6])[max.col(!is.na(dat[4:6]), "first")] 
#[1] "11/24" "11/23" 
+0

Спасибо! это сработало очень красиво – Chris

+0

Вау! Это аккуратно! Огромное спасибо! – elarry

0

Это один из возможных решений

df$first_NA <- apply(df,1,function(x) names(which(which(!is.na(x))>3))[1]) 
+0

. Более ранний ответ для получения имени столбца первого значения NA, я отредактировал его, чтобы получить первое имя столбца значения, отличного от NA. –