У меня есть количество дней, и я хочу перевести это число в годы и месяцы в R - PullRequest
0 голосов
/ 16 апреля 2019

Я хочу вычислить значение времени жизни Клиента, для которого мне нужна переменная «Количество лет, в течение которых клиент работает в компании».но у меня есть это в днях.Поэтому я хочу извлечь число лет из заданного числа.Как и функция Datedif () в Excel

, я попытался разделить число на 365.Но это не точно.

data$Customer_Duration
  [1]  368 1649  594  218  952  723  313
data$Cust_duration_years=round((data$Customer_Duration/365),2)
data$Cust_duration_years
> data$Cust_duration_years
  [1] 1.01 4.52 1.63 0.60 2.61 1.98 

, когда я делаю datedif() функцию в Excel.Я получаю несколько минутных различий.Как 2 наблюдения 1649/365 = 4,52 в R и в Excel это 4,6

1 Ответ

0 голосов
/ 16 апреля 2019

Вот решение для преобразования дней в годы, месяцы и дни для общего года (можно легко расширить его, чтобы охватить високосные годы):

days_toymd = function(days){

  year_days = 365
  month_days = c(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31)

  ## number of years
  yr = round(days / year_days, 0)

  yr_lo = days %% year_days

  month = 0
  ## number of months
  for(i in month_days){

    if(yr_lo >= i){
      month = month + 1

      yr_lo =  yr_lo - i
    }

    else if(yr_lo < i){
      yr_lo = yr_lo
    }
  }

  print("days converted to years, months and days")
  return(paste(yr, month, yr_lo))

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...