У меня есть фрейм данных со столбцом, который представляет количество дней, называемых num_days как «0», «», «0xY0xM», «0xM». Я хочу изменить это на количество дней.
это то, как выглядит фрейм данных
| a | b | num_days | d |
| 2 | 3 | '01Y' | 99 |
| 2 | 4 | "" | 8 |
| 3 | 7 | "01Y02M" | 7 |
| 4 | 1 | "0" | 8 |
каждый год будет Y означать 365 дней, а каждый месяц - 30 дней
| a | b | num_days | d |
| 2 | 3 | 365 | 99 |
| 2 | 4 | 0 | 8 |
| 3 | 7 | 425 | 7 |
| 4 | 1 | 0 | 8 |
в настоящее время эторешение:
return_days <- function(x){
if(x == ""){
return(0)
}
d = gsub("Y", ".", x=x, ignore.case=FALSE, fixed=TRUE)
d = gsub("M", "" , x=d, ignore.case=FALSE, fixed=TRUE)
d = strsplit(d, '[.]')
return( ifelse(length(d[[1]]) == 1, 30*as.numeric(x[[1]][1]), 30* as.numeric(d[[1]][1]) + 365*as.numeric(d[[1]][2]) ) )
}
Я уверен, что это можно написать лучше, к сожалению, я еще не волшебник R.Любая помощь приветствуется.спасибо