【发布时间】:2018-04-02 03:46:33
【问题描述】:
我正在尝试为我在 r 中的单变量时间序列数据运行 frame_calendar。当我尝试计算数据框的日历布局时,出现以下错误。
mutate_impl(.data, dots) 中的错误: 评估错误:找不到对象“72L”。
从类似的线程中,我看到了评估错误:未找到对象“”通常是针对用户在代码中输入的对象。但是,就我而言,我并没有在我的代码中指代任何“72L”。它也不在我的数据集中。你能帮我弄清楚如何解决这个错误吗?非常感谢任何帮助。
这是我的一部分数据。
Date_Time Time Date Year Month Mdate Day Hours_Time Hourly_Counts
1/1/2015 0:00 0:00:00 2015-01-01 2015 January 1 Thursday 1 72
1/1/2015 1:00 1:00:00 2015-01-01 2015 January 1 Thursday 2 48
1/1/2015 2:00 2:00:00 2015-01-01 2015 January 1 Thursday 3 53
1/1/2015 3:00 3:00:00 2015-01-01 2015 January 1 Thursday 4 84
1/1/2015 4:00 4:00:00 2015-01-01 2015 January 1 Thursday 5 68
这是我的代码。
newdata <- read.csv("D:/NEWDATA.csv")
attach(newdata)
View(newdata)
newdata[,3] <- as.Date(Date, origin = "1/1/2000")
attach(newdata)
View(newdata)
library(dplyr)
# compute the calendar layout for the data frame
calendar_df <- newdata %>%
filter(Year == 2015) %>%
frame_calendar(x = Time, y = Hourly_Counts, date = Date)
【问题讨论】:
-
frame_calendar来自suggrants?还有两个旁注:1)不要attach()您的数据框,特别是如果您要使用tidyverse函数(使用非标准评估)。 2)您的数据中确实有72L。是整数72,是newdata$Hourly_Counts中的第一个值 -
是的,那么如果你使用基本方法进行变异,你必须将其包装在
with()中或显式提取它们(例如,newdata$Date) -
@DanHall 是的,
frame_calendar来自suggrants包。如果按照您的建议,在读取数据后第一次没有attach()数据帧,那么我会收到错误:> as.Date(Date, origin = "1/1/2000") 中的错误:对象'找不到日期。但是,如果我第一次attach()并省略了第二次attach(),我仍然会得到 > mutate_impl(.data, dots) 中的错误:评估错误:找不到对象 '72L'。另外,我可以在整数72中看到您的观点,我只是不明白为什么日历布局正在搜索特定的数据值。如果这是太基本的问题,我深表歉意。 -
@DanHall 这里是我的代码的编辑版本。我尝试将
tibble()作为将Date转换为Date Class的替代方法。newpm10 <- read.csv("D:/NEWDATA.csv") View(newdata) newdata <- as_tibble(newdata) newdate <- as.Date(Date, origin = "1/1/2000") View(newdate) newdata <- mutate(newdata, Date = newdate) View(newdata) library(dplyr) # compute the calendar layout for the data frame calendar_df <- newdata %>% filter(Year == 2015) %>% frame_calendar(x = Time, y = Hourly_Counts, date = Date)但是它仍然给出同样的错误。感谢您的帮助。 -
问题的主要来源是您使用了
attach,它在对frame_calendar的调用中掩盖了Hourly_Counts。请参阅下面的答案。要运行它,请确保从干净的环境开始。您已经多次运行attach(),这意味着您每次都必须运行detach。