【发布时间】:2023-03-13 05:10:01
【问题描述】:
我想把我的头发拉到这个上......
我读过这样的代码
holidays <- read.csv("~/xxx/holiday_sample.csv") %>%
rename(DATE = "ï..DATE") %>%
mutate(DATE = as.Date(DATE,format = "%m/%d/%Y"))
##looks like this
structure(list(DATE = structure(c(17532, 17533, 17534, 17546,
17547, 17548, 17549, 17575, 17576, 17577, 17620, 17621, 17622,
17678, 17679, 17680, 17681, 17682, 17713, 17714, 17715, 17716,
17717, 17774, 17775, 17776, 17777, 17778, 17812, 17847, 17855,
17856, 17857, 17858, 17859, 17860, 17884, 17885, 17886, 17887,
17888, 17889, 17890, 17891, 17892, 17893, 17894, 17895, 17896
), class = "Date"), REASON = c("New Years Day", "New Years Travel",
"New Years Travel", "Lee-Jackson Day", "Lee-Jackson-King Travel Day",
"Lee-Jackson-King Travel Day", "Martin Luther King, Jr. Day",
"Presidents Day Travel", "Presidents Day Travel", "Presidents Day",
"Easter Travel", "Easter Travel", "Easter", "Memorial Day Travel",
"Memorial Day Travel", "Memorial Day Travel", "Memorial Day",
"Memorial Day Travel", "Independence Day Travel", "Independence Day Travel",
"Independence Day Travel", "Independence Day", "Independence Day Travel",
"Labor Day Travel", "Labor Day Travel", "Labor Day Travel", "Labor Day",
"Labor Day Travel", "Columbus Day", "Veterans Day", "Thanksgiving Travel",
"Thanksgiving Travel", "Thanksgiving Day", "Thanksgiving Travel",
"Thanksgiving Travel", "Thanksgiving Travel", "Christmas Travel",
"Christmas Travel", "Christmas Travel", "Christmas Travel", "Christmas Travel",
"Christmas Travel", "Christmas Day", "Christmas Travel", "Christmas Travel",
"Christmas Travel", "Christmas Travel", "Christmas Travel", "New Years Travel"
)), class = "data.frame", row.names = c(NA, -49L))
我想通过另一个 df 循环查看哪些行发生在假期。
bottleneck2 <- structure(list(startTime = structure(c(1519903920, 1519905060,
1519913640), class = c("POSIXct", "POSIXt"), tzone = "America/New_York"),
endTime = structure(c(1519904880, 1519912200, 1519914540), class = c("POSIXct",
"POSIXt"), tzone = "America/New_York"), impact = c(92.17,
616.43, 63.69), impactPercent = c(184.15, 1495.17, 138.69
), impactSpeedDiff = c(3587.72, 25726.22, 2616.01), maxQueueLength = c(5.76053,
5.76053, 4.829511), tmcs = list(c("110N04623", "110-04623",
"110N04624", "110-04624", "110N04625", "110-04625", "110N04626",
"110-04626", "110N04627"), c("110N04623", "110-04623", "110N04624",
"110-04624", "110N04625", "110-04625", "110N04626", "110-04626",
"110N04627"), c("110N04623", "110-04623", "110N04624", "110-04624",
"110N04625", "110-04625", "110N04626", "110-04626")), early_startTime = structure(c(1519903620,
1519904760, 1519913340), class = c("POSIXct", "POSIXt"), tzone = "America/New_York")), row.names = c(NA,
3L), class = "data.frame")
但是当我运行以下命令时,我得到一个零意义的语法错误......
holiday_match <- lapply(1:nrow(bottleneck2), function(x) {
bottleneck_row <- bottleneck2[x,]
holidays[which(holidays$DATE = as.Date(bottleneck_row$early_startTime) |
holidays$DATE = as.Date(bottleneck_row$endTime) == TRUE),]
})
错误: Error: unexpected '}' in " }"
然后当我将文件保存在 R 中时,我又遇到了另一个错误。
Error in source("~/xxx/example.R") :
~/xxx/example.R:226:32: unexpected '='
225: bottleneck_row <- bottleneck2[x,]
226: holidays[which(holidays$DATE =
看到另一个帖子说这可能是 Unicode 不匹配,但重新输入了两次,但没有成功。这是文件中另一个循环的复制和粘贴,完美运行....
【问题讨论】:
-
=vs==,改为which(holidays$DATE == as.Date(...) | holidays$DATE == as.Date(...)。 (并且不需要== TRUE。) -
试了还是报错
-
> holiday_match }) 错误:“}”中出现意外的“}”
-
是的(我正在查看,但请参阅stackoverflow.com/q/28176650/3358272 以了解
=/==的讨论,以防您不确定。(抱歉,如果您是,那只是一个错字。) -
给定此示例数据,您的预期输出是什么?