【发布时间】:2014-02-14 16:08:34
【问题描述】:
我在计算旅行日期时遇到问题。我有一个出发日期和返回日期的数据框。
Departure Return
1 7/6/13 8/3/13
2 7/6/13 8/3/13
3 6/28/13 8/7/13
我想创建并传递一个函数,该函数将获取这些日期并形成所有天数的列表。我可以通过将每一列转换为日期来单独执行此操作。
## Turn the departure and return dates into a readable format
Dept <- as.Date(travelDates$Dept, format = "%m/%d/%y")
Retn <- as.Date(travelDates$Retn, format = "%m/%d/%y")
travel_dates <- na.omit(data.frame(dept_dates,retn_dates))
seq(from = travel_dates[1,1], to = travel_dates[1,2], by = 1)
这给了我[1] "2013-07-06" "2013-07-07"...等等。我想扩展以覆盖整个数据框,但我的尝试失败了。
这是我认为可能有用的一个。
days_abroad <- data.frame()
get_days <- function(x,y){
all_days <- seq(from = x, to = y, by =1)
c(days_abroad, all_days)
return(days_abroad)
}
get_days(travel_dates$dept_dates, travel_dates$retn_dates)
我收到此错误:
Error in seq.Date(from = x, to = y, by = 1) : 'from' must be of length 1
这可能有很多问题,但我真正需要帮助的是如何通过seq() 运行多个日期。
对不起,如果这很简单(我仍在学习用 r 思考),并且对任何违反礼仪的行为感到抱歉。谢谢。
【问题讨论】:
-
也许应用功能可以帮助您将所有内容转换为日期并从那里提取列表