r - 根据 is.na 条件删除 R 中的多行
问题描述
我对 R 并不完全陌生,但我可以在这方面有所帮助 :)
所以,我有一个过去 20 年里大约 14,000 种不同股票的数据集。现在,很明显,其中一些股票在整个时间段内都没有交易。我正在尝试清理我的数据,以便对于任何股票,如果在特定月份至少一天没有交易,则该(仅)股票的整个月份的数据将被删除。也就是说,我只想保留每只股票在特定月份每天交易的数据。我希望这很清楚!
如果您至少可以指导我使用我可以用来漂亮地进行此过滤的包/功能,那将是非常棒的。
谢谢!
例子:
mydata <- structure(list(permno = c(10001L, 10001L, 10001L, 10001L, 10001L,
10001L, 10001L, 10001L, 10001L, 10001L), date = structure(c(7306,
7307, 7308, 7309, 7312, 7313, 7314, 7315, 7316, 7319), class = "Date"),
sic = c(4920, 4920, 4920, 4920, 4920, 4920, 4920, 4920, 4920,
4920), price = c(3.375, 3.33333333333, NA, 3.35416666667,
3.375, 3.375, 3.375, 3.375, 3.375, NA), cap = c(10347750,
10220000, 10220000, 10283875, 10347750, 10347750, 10347750,
10347750, 10347750, 10092250)), row.names = c(NA, 10L), class = "data.frame")
mydata
permno 指的是特定的股票,对于它们中的每一个,我只想保留没有 n/a 的月份的数据。
解决方案
将年、月、日与 分开date
。对于每个月的每只股票,仅保留该股票在该月每天交易的数据。
library(dplyr)
library(lubridate)
result <- mydata %>%
mutate(year = year(date),
month = month(date),
day = day(date)) %>%
group_by(permno, year, month) %>%
filter(all(!is.na(price)))
推荐阅读
- sql - 如何在 Presto 的大数据集上使用线性插值对时间序列数据进行插值?
- gwt - 用于 Java 原始对象包装类的 JsInterop
- r - 防止在包端加载消息
- python - 如何找到特定图像点的坐标?
- javascript - 如何过滤掉两个对象数组之间存在的数据
- reactjs - 将 antd 与 Storybook v5 一起使用
- javascript - 将流/类组件重写为自定义钩子
- react-native - 在反应本机文本输入中更改单个单词的颜色
- amazon-web-services - 纱线和 npm 的问题
- c# - 来电者的 YouTube 帐户未连接到 Google+