仅将数据集过滤到R中列的第一个NA之后

蚂蚁

我有一个数据集,我试图根据日期的顺序仅过滤到第一次非NA观察之后的数据。

mock.data <- data.frame( id = c(1, 1, 1, 1, 1,  
                            2, 2, 2, 2, 2,
                            3, 3, 3, 3, 3 ),
                     date = as.Date(c("1934-06-03", "1938-06-17",  "1943-06-23", "1948-06-17", "1953-06-23",
                              "1911-09-24", "1914-04-07", "1917-09-16", "1920-09-17", "1924-09-17",
                              "2008-09-09", "2012-10-06", "2016-10-14", "2020-03-03", "2022-04-14")),
                     price = c(33, 54, NA, 55, 67,
                               NA, NA, 19, NA, 22,
                               NA, 98, 87, 102, NA))

mock.data



 id       date price
  1 1934-06-03    33
  1 1938-06-17    54
  1 1943-06-23    NA
  1 1948-06-17    55
  1 1953-06-23    67
  2 1911-09-24    NA
  2 1914-04-07    NA
  2 1917-09-16    19
  2 1920-09-17    NA
  2 1924-09-17    22
  3 2008-09-09    NA
  3 2012-10-06    98
  3 2016-10-14    87
  3 2020-03-03   102
  3 2022-04-14    NA

我想要的是基本上将其仅过滤为每个值在第一个NA输入之后的值,而保留在第一个非NA之后出现的值。因此,理想情况下,我将获得以下内容:priceidNA

ideal.data <- data.frame( id = c(1, 1, 1, 1, 1, 
                              2, 2, 2,
                             3, 3, 3,3 ),
                      date = as.Date(c("1934-06-03", "1938-06-17",  "1943-06-23", "1948-06-17", "1953-06-23",
                                       "1917-09-16", "1920-09-17", "1924-09-17",
                                       "2012-10-06", "2016-10-14", "2020-03-03", "2022-04-14")),
                      price = c(33, 54, NA, 55, 67,
                                19,NA, 22,
                                98, 87, 102, NA))

我已经尝试了多种方法,主要是基于整洁的方法,如下所示:

library(tidyverse)


mock.data%>%
group_by(id)%>%
  arrange(date)%>%
  filter( date > date[min(is.na(price))])

但是我遇到了很多错误,无法完全满足我的要求。任何帮助都非常欢迎!

托马斯·艾斯科丁

基本R选项使用 ave

subset(
  mock.data,
  ave(!is.na(price), id, FUN = function(v) seq_along(v) >= which(v)[1])
)

   id       date price
1   1 1934-06-03    33
2   1 1938-06-17    54
3   1 1943-06-23    NA
4   1 1948-06-17    55
5   1 1953-06-23    67
8   2 1917-09-16    19
9   2 1920-09-17    NA
10  2 1924-09-17    22
12  3 2012-10-06    98
13  3 2016-10-14    87
14  3 2020-03-03   102
15  3 2022-04-14    NA

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

R-将第一个NA后的数据帧行中的所有值替换为NA

来自分类Dev

仅显示数据中的第一个元素

来自分类Dev

R过滤包含NA的行的一部分之前的第一个点和之后的最后一个点

来自分类Dev

在pandas数据帧中某些列之后给定大小的第一个零序列的长度

来自分类Dev

将列表列表转换为单个数据框,其中第一列由R中的第一个值(对于每个列表)填充

来自分类Dev

创建一个仅包含 R 中 NA 行的数据集

来自分类Dev

在3+列数据框中的熊猫中每个组的第一个和最后一个位置之前和之后添加行

来自分类Dev

PHP准备好的语句->仅返回数据库列中的第一个字母

来自分类Dev

打印数据集的 2 个连续数据条目的第一个和最后一个值,以绘制差异 - 在 R 中

来自分类Dev

在数据帧中连续零之后找到第一个数字

来自分类Dev

删除熊猫数据框中第一个空格之后的所有内容

来自分类Dev

sqlldr仅将字符串的第一个字符加载到列中

来自分类Dev

使用 for 循环进行地理编码,仅第一个使用,并放入数据帧(在 R 中)

来自分类Dev

R将二进制矢量中的块修剪为仅第一个元素

来自分类Dev

为第一个唯一实例过滤Excel中的一列?

来自分类Dev

提取文本列中特定单词之后的第一个数字

来自分类Dev

使用熊猫将Excel数据过滤到另一个Excel

来自分类Dev

在r中的符号和第一个非单词char之后提取文本

来自分类Dev

R-仅按第一个空格分割数据帧

来自分类Dev

仅显示第一个重复的列值

来自分类Dev

MongoDB-每天将文档过滤到一个

来自分类Dev

Django Admin按功能过滤/仅按反向外键查找中的第一个对象过滤

来自分类Dev

根据列值中第一个出现的内容将数据框列分为两部分

来自分类Dev

R:按组逐列查找data.table中的第一个非NA观测值

来自分类Dev

biopython的提取仅返回任何数据库中的第一个功能

来自分类Dev

脚本IF ELSE仅适用于php中的第一个数据

来自分类Dev

搜索栏仅返回数据数组中的第一个元素

来自分类Dev

如何从数据框中删除多个标头并仅保留第一个 python

来自分类Dev

仅在第一列中的第一个空格之后删除字符串

Related 相关文章

  1. 1

    R-将第一个NA后的数据帧行中的所有值替换为NA

  2. 2

    仅显示数据中的第一个元素

  3. 3

    R过滤包含NA的行的一部分之前的第一个点和之后的最后一个点

  4. 4

    在pandas数据帧中某些列之后给定大小的第一个零序列的长度

  5. 5

    将列表列表转换为单个数据框,其中第一列由R中的第一个值(对于每个列表)填充

  6. 6

    创建一个仅包含 R 中 NA 行的数据集

  7. 7

    在3+列数据框中的熊猫中每个组的第一个和最后一个位置之前和之后添加行

  8. 8

    PHP准备好的语句->仅返回数据库列中的第一个字母

  9. 9

    打印数据集的 2 个连续数据条目的第一个和最后一个值,以绘制差异 - 在 R 中

  10. 10

    在数据帧中连续零之后找到第一个数字

  11. 11

    删除熊猫数据框中第一个空格之后的所有内容

  12. 12

    sqlldr仅将字符串的第一个字符加载到列中

  13. 13

    使用 for 循环进行地理编码,仅第一个使用,并放入数据帧(在 R 中)

  14. 14

    R将二进制矢量中的块修剪为仅第一个元素

  15. 15

    为第一个唯一实例过滤Excel中的一列?

  16. 16

    提取文本列中特定单词之后的第一个数字

  17. 17

    使用熊猫将Excel数据过滤到另一个Excel

  18. 18

    在r中的符号和第一个非单词char之后提取文本

  19. 19

    R-仅按第一个空格分割数据帧

  20. 20

    仅显示第一个重复的列值

  21. 21

    MongoDB-每天将文档过滤到一个

  22. 22

    Django Admin按功能过滤/仅按反向外键查找中的第一个对象过滤

  23. 23

    根据列值中第一个出现的内容将数据框列分为两部分

  24. 24

    R:按组逐列查找data.table中的第一个非NA观测值

  25. 25

    biopython的提取仅返回任何数据库中的第一个功能

  26. 26

    脚本IF ELSE仅适用于php中的第一个数据

  27. 27

    搜索栏仅返回数据数组中的第一个元素

  28. 28

    如何从数据框中删除多个标头并仅保留第一个 python

  29. 29

    仅在第一列中的第一个空格之后删除字符串

热门标签

归档