Арифметические операции над списками R - PullRequest
0 голосов
/ 28 сентября 2018

У меня есть data.frame с переменными типа данных list, значения которых в формате Date.Как рассчитать разницу между двумя датами из двух разных переменных и назвать их YrsEmployed и типом данных list?

Обратите внимание, что StartHireDate и EndHireDate ниже Dateотформатирована.Я просто не знаю, как отобразить их как Date

> > print(HiringDateInfo)
          X_id                                                     StartHireDate
1 530eed6dbfb5c1a8e77cb0fc                            NA, NA, NA, NA, NA, NA, NA, NA, NA, NA
2 5391a88bbfb5c1b1fed0bcf4                            NA, NA, NA, NA, NA, NA, NA, NA, NA, NA
3 53a0fa3cf1f17922a0287add                            NA, NA, NA, NA, NA, NA, NA, NA, NA, NA
4 53abd15cf1f179c3e81a3fbe                            NA, NA, NA, NA, NA, NA, NA, NA, NA, NA
5 54dd934ff1f179acfb7b0a2f 14304, 15095, 15279, 15431, 15492, 15645, 15859, NA, 16222, 16375
                                                        EndHireDate
1                            NA, NA, NA, NA, NA, NA, NA, NA, NA, NA
2                            NA, NA, NA, NA, NA, NA, NA, NA, NA, NA
3                            NA, NA, NA, NA, NA, NA, NA, NA, NA, NA
4                            NA, NA, NA, NA, NA, NA, NA, NA, NA, NA
5 15063, 15308, 15338, 15490, 15613, 15855, 16116, 16159, 16312, NA

Я ожидаю новый data.frame вместе с YrsEmployed

YrsEmployed
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA
2.07945205479452,0.583561643835616,0.161643835616438,0.161643835616438,0.3315068,49315069,0.575342465753425,0.704109589041096,NA,0.246575342465753,NA

Ответы [ 2 ]

0 голосов
/ 22 октября 2018

Вот что я сделал, чтобы обойти это.1. Я определяю функцию function(x, y) list(((x-y)/365)*1) 2. Затем с помощью mapply получаем нужную новую переменную mapply(fdiff, HiringDateInfo$EndHireDate, HiringDateInfo$StartHireDate)

0 голосов
/ 28 сентября 2018

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

HiringDateInfo$StartHireDate <- as.Date(HiringDateInfo$StartHireDate, format = "depending on your formate")
HiringDateInfo$EndHireDate <- as.Date(HiringDateInfo$EndHireDate, format = "depending on your formate")

После этого вы можете вычислить YrsEmployed с помощью функции mutate из dplyr.Надеюсь, что это работает!

...