在R中将整数更改为字符?

时间:2016-01-19 05:13:02

标签: r

我知道这是一个非常愚蠢的问题,但它让我疯狂。

我正在尝试在数据框中合并两列。

一年是一年,有2006年,2007年等数字

另一列是月份,数字来自1-12。

我想创建一个名为date的列,如下所示: 2012年和12年成为201212 2012年和4年成为201204

这应该很简单,但我似乎无法在2012和4之间获得0 !!!!!!

数据框称为x。我尝试过多种变体:

attach(x)
x$mymonth <- as.character(mymonth)
x[!(mymonth=="10"|mymonth=="11"|mymonth=="12"),]$mymonth <- paste0("0",x[!(mymonth=="10"|mymonth=="11"|mymonth=="12"),]$mymonth)
x$mymonth <- as.character(mymonth)
x$date <- paste0(as.character(year),as.character(mymonth),"")
detach(x)

这不起作用。

1 个答案:

答案 0 :(得分:2)

我们可以使用sprintf并指定相应的fmt

df1$date <- sprintf("%04d%02d", df1$year, df1$month)
df1$date
#[1] "201501" "201502" "201503" "201504" "201505" "201506" "201507" "201508"
#[9] "201509" "201510" "201511" "201512"

或另一个选项是来自str_pad的{​​{1}},然后是library(stringr)

paste

注意:建议不要使用library(stringr) paste0(df1$year, str_pad(df1$month, width=2, pad=0)) 。相反,我们可以使用attachwith等。

数据

within