Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
196 views
in Technique[技术] by (71.8m points)

Change Duration from (Years and Month) to (Month) in R

I have some data frame like below. I need to add a "Duration" column beside the "Years and Month" column and convert the "Years and Month" to Month as duration.

For instance, I need to change the 2Y3M to 27M.

I have searched for it and didn't succeed. How do I do that? Thanks in advance.

Years and Month Percentage Change
2Y3M 13%
3Y4M 23%
question from:https://stackoverflow.com/questions/65877766/change-duration-from-years-and-month-to-month-in-r

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

Assuming your dataframe is called df and column as ym you can use strcapture to extract year and month value.

result <- transform(strcapture('(\d+)Y(\d+)M', df$ym, 
                    proto = list(year = integer(), month = integer())), 
                    yearmonth = (year * 12) + month)
result

#  year month yearmonth
#1    2     3        27
#2    3     4        40

To assign the value to same column.

df$ym <- transform(strcapture('(\d+)Y(\d+)M', df$ym, 
           proto = list(year = integer(), month = integer())), 
          yearmonth = (year * 12) + month)$yearmonth

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...