相关疑难解决方法(0)

使用dplyr过滤data.frame中的完整案例(案例删除)

是否可以使用dplyr过滤data.frame以获取完整的案例?complete.cases当然,有一个所有变量的列表.但这是a)当有很多变量时很冗长,而b)当变量名称未知时是不可能的(例如在处理任何data.frame的函数中).

library(dplyr)
df = data.frame(
    x1 = c(1,2,3,NA),
    x2 = c(1,2,NA,5)
)

df %.%
  filter(complete.cases(x1,x2))
Run Code Online (Sandbox Code Playgroud)

r dplyr magrittr

85
推荐指数
5
解决办法
4万
查看次数

使用dplyr删除所有变量都为NA的行

我在看似简单的任务时遇到了一些问题:删除所有变量都NA使用dplyr的所有行.我知道可以使用基本R(删除R矩阵中的所有数据为NA删除R中数据文件的空行)来完成,但我很想知道是否有一种简单的方法可以使用dplyr .

例:

library(tidyverse)
dat <- tibble(a = c(1, 2, NA), b = c(1, NA, NA), c = c(2, NA, NA))
filter(dat, !is.na(a) | !is.na(b) | !is.na(c))
Run Code Online (Sandbox Code Playgroud)

filter上面的调用做了我想要的但是在我面临的情况下它是不可行的(因为有大量的变量).我想可以通过使用filter_并首先使用(长)逻辑语句创建一个字符串来实现它,但似乎应该有一个更简单的方法.

另一种方法是使用rowwise()do():

na <- dat %>% 
  rowwise() %>% 
  do(tibble(na = !all(is.na(.)))) %>% 
  .$na
filter(dat, na)
Run Code Online (Sandbox Code Playgroud)

但这看起来并不太好,虽然它完成了工作.其他想法?

r dplyr tidyverse

23
推荐指数
6
解决办法
1万
查看次数

如何使用 data.table 过滤掉特定列全部 NA 的行?

我有同样的问题,如这里解决的,但我必须使用 data.table。

过滤掉所有行的最佳 data.table 方式是什么,其中特定/“相关”列全部不适用,其他“不相关”列显示的内容(不适用/或不)并不重要。

library(data.table)

df <- data.frame('epoch' = c(1,2,3),
               'irrel_2' = c(NA,4,5),
               'rel_1' = c(NA, NA, 8),
               'rel_2' = c(3,NA,7)
               )

df
#>   epoch irrel_2 rel_1 rel_2
#> 1     1      NA    NA     3
#> 2     2       4    NA    NA
#> 3     3       5     8     7

setDT(df)
wrong <- na.omit(df, cols = 3:4)
Run Code Online (Sandbox Code Playgroud)

创建于 2023-05-25,使用reprex v2.0.2

我只想过滤掉第 2 行。你的解决方案是什么?

r filter na data.table

5
推荐指数
1
解决办法
363
查看次数

标签 统计

r ×3

dplyr ×2

data.table ×1

filter ×1

magrittr ×1

na ×1

tidyverse ×1