【发布时间】:2021-12-13 14:17:53
【问题描述】:
我正在寻找一种过滤数据框的方法,以便保留数据集中最后 N 个唯一日期的所有数据,不包括 NA。我的数据不是以任何已知的频率收集的——有些日子可能包含 100 个数据点,然后几周都没有数据。最终目标是根据可用的最新数据对时间进行回归分析。如果我只是做一个尾部函数并选择最后 N 行(按日期排列),我有时会得到 1-2 天的所有数据,这不适合一个好的回归时间。
关于如何完成此任务的任何建议?
数据看起来像附加的。我唯一尝试的是如下所示的 tail(df, 30) 函数,然后进行线性回归,这时我意识到结果看起来很奇怪,因为我显然在 12/11 有超过 30 个数据点。
all_data2 <- all_data2 %>%
filter(!!sym(test_par[j]) < upper_q, !!sym(test_par[j]) > lower_q ) %>%
mutate(week=difftime(code_date, as.Date(x_start), units = c("weeks")))
all_data2 <- all_data2 %>%
mutate(test_par_avg=SMA(all_data2[test_par[j]], n=nsmooth)) %>%
filter(!is.na(test_par_avg)) %>%
arrange(code_date) %>%
tail(no_tail)
model <- lm(test_par_avg ~ week, data=all_data2)
【问题讨论】:
-
如果您能与我们分享一些测试数据,并且向我们展示您已经尝试过的内容,那就太好了。
-
请以复制/粘贴文本的形式分享示例数据,以便我们可以测试代码并演示解决方案,而不是图片。
dput(your_data[1:10, ])将为我们提供前 10 行数据的复制/粘贴版本,包括所有类和结构信息。请选择一个合适的小子集来说明问题。
标签: r