2015-01-17 5 views
-1

У меня есть dataframe и зоопарк Objet какКопирование столбцов объекта зоопарка на основе состояния в кадре данных

   T1  T2  T3 
2013-01-18  20  15  21 
2013-01-20  30  18  17 
2013-01-21  10  21  24 
2013-01-22  15  17  15 
2013-01-23  18  16  18 


Name DoApply Base 
T1  YES  T3 
T2  YES  T3 
T3  NO  T3 
T4  YES  T5 
T5  NO  T5 

Base dataframe может иметь больше значения имени. Теперь, исходя из того, является ли doApply да, я хочу скопировать значение из его базового столбца. Выход, как этот

   T1  T2  T3 
2013-01-18  21  21  21 
2013-01-20  17  17  17 
2013-01-21  24  24  24 
2013-01-22  15  15  15 
2013-01-23  18  18  18 

Это может быть прямо вперед, но так или иначе я не мог заставить его

ответ

2

Может быть

indx <- d1$DoApply=='YES' 
indx1 <- d1$Name[indx] %in% names(z) 
z[, indx1] <- z[, d1$Base[indx][indx1]] 
z 
#   T1 T2 T3 
#2013-01-18 21 21 21 
#2013-01-20 17 17 17 
#2013-01-21 24 24 24 
#2013-01-22 15 15 15 
#2013-01-23 18 18 18 
+0

Я получаю эту ошибку (индекс) логический индекс слишком долго. –

+0

@ChaturvediDewashish На основе вашего примера он работает – akrun

+0

Он отлично работает. Единственная часть, отсутствовавшая в моих данных, со ссылкой на данные, о которых идет речь, заключается в том, что у моих данных есть недостающие столбцы по сравнению с df и наоборот. Вот почему логический скрипт слишком длинный. –

Смежные вопросы