如果另一个列表的长度不同,则重复一个lapply列表

时间:2016-10-20 00:09:36

标签: r lapply

所以这是一个非常愚蠢的问题,我很确定我错过了一些非常明显的问题。

我在1月到12月的向量中有12个月的时间,我的数据框的年份值为201601,201602,201604,为1月,2月,3月。

数据框将始终排序并从Jan(201601)

开始

我正在提取这个数据帧的长度,我想将数据帧的每个元素映射到我的12个月向量。

当我运行lapplay时,我得到一个部分解决方案,如果数据帧长度为15,我得到1月 - 12月映射和3个NA,我希望映射继续,所以它将是1月 - 3月。

这是我到目前为止所拥有的

monthName <- c("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec")
entry <- data.frame("test"=c("1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"))

month <- unlist(lapply(1:length(entry$test), function (x) monthName[x]))

> month

[1]“Jan”“Feb”“Mar”“Apr”“May”“Jun”“Jul”“Aug”“Sep”“Oct”“Nov”“Dec”NA NA NA

正如HubertL所指出的,这是一个简单而优雅的解决方案rep_len(monthName,length(entry $ test))

1 个答案:

答案 0 :(得分:0)

正如HubertL所指出的,当前问题的解决方法是:

AnyClass.class.getName();

谢谢HubertL