如何在R markdown中编写我的第一个函数?

时间:2018-09-11 15:25:20

标签: r

我正在用R Markdown编写我的第一个函数,但似乎不能完全正常工作。有人可以帮忙吗?

我正在使用一个字符变量,该变量以yyyy-mm-dd格式列出日期,我希望将其转换为格式为“ Jan”,“ Feb”等的日期。为此,我使用了2个步骤: / p>

  1. 将字符变量转换为与字符相同的格式的日期,如下所示:

All.abs$MonthBeginning= as.Date(All.abs$MonthBeginning, format= "%Y-%m-%d")

  1. 然后使用以下代码将日期更改为“ Jan”等:

All.abs$MonthBeginning= as.Date(All.abs$MonthBeginning, format= "%b")

我想对其他2个数据帧(称为“ Carbs”和“ Pip.Taz”)中的相同变量(MonthBeginning)遵循相同的过程,而不必编写6行代码。

我编写了如下函数(名为chart_months),但似乎无法正常工作:

chart_months= function(x) {
  x= as.Date(x, format= "%Y-%m-%d")
  x= as.Date(x, format= "%b")
}
chart_months(All.abs$MonthBeginning)
chart_months(Carbs$MonthBeginning)
chart_months(Pip.Taz$MonthBeginning)

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

这不能做到这一点:

  

然后使用以下代码将日期更改为“ Jan”等:

All.abs$MonthBeginning= as.Date(All.abs$MonthBeginning, format= "%b")

您要使用format

> string_date = "2001-05-22"
> date_object = as.Date(string_date, format="%Y-%m-%d")
> short_month = format(date_object, "%b")
> short_month
[1] "May"

所以您的功能应该是:

get_short_month = function(string_date){
  date_object = as.Date(string_date, format="%Y-%m-%d")
  short_month = format(date_object, "%b")
  return(short_month)
}