R 如果另一个列表长度不同,则重复重叠列表

R 如果另一个列表长度不同,则重复重叠列表,r,lapply,R,Lapply,所以这是一个非常愚蠢的问题,我很确定我遗漏了一些非常明显的东西 我有一个从一月到十二月的12个月的向量,我有一个数据框,它有一个yearmonth值,所以201601,201602,201604,一月,二月,三月 数据帧将始终进行排序,并从1月开始(201601) 我正在提取这个数据帧的长度,我想根据我12个月的向量映射数据帧的每个元素 当我运行lapplay时,我得到了一个部分解决方案,如果数据帧的长度为15,我得到1-12月映射和3个NAs,我希望映射继续,因此它将改为1-3月 这就是我目前

所以这是一个非常愚蠢的问题,我很确定我遗漏了一些非常明显的东西

我有一个从一月到十二月的12个月的向量,我有一个数据框,它有一个yearmonth值,所以201601,201602,201604,一月,二月,三月

数据帧将始终进行排序,并从1月开始(201601)

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

当我运行lapplay时,我得到了一个部分解决方案,如果数据帧的长度为15,我得到1-12月映射和3个NAs,我希望映射继续,因此它将改为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

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

rep_len(monthName, length(entry$test))

谢谢HubertL

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

rep_len(monthName, length(entry$test))

谢谢你HubertL

rep_len(monthName,length(entry$test))
ok哇,太简单了,我也看了rep_len!谢谢你,我现在要用手掌面对面几分钟了,哈威可以把这归咎于默认的
stringsAsFactors=TRUE
:)是的,我看到现在
entry$test 12,entry$test%%12,entry$test)]
对我来说似乎更有意义。
rep len(monthName,length(entry$test))
好吧,哇,这太简单了,我也看了一遍rep_len!谢谢你,我现在要用手掌面对面几分钟了,哈哈,我可以把这归咎于默认的
stringsAsFactors=TRUE
)是的,我现在明白了
entry$test 12,entry$test%%12,entry$test)]
对我来说似乎更有意义。