相关疑难解决方法(0)

在R中删除数据文件的空行

我有一个空行的数据集.我想删除它们:

myData<-myData[-which(apply(myData,1,function(x)all(is.na(x)))),]
Run Code Online (Sandbox Code Playgroud)

它运作正常.但是现在我想在我的数据中添加一个列并初始化第一个值:

myData$newCol[1] <- -999

Error in `$<-.data.frame`(`*tmp*`, "newCol", value = -999) : 
  replacement has 1 rows, data has 0
Run Code Online (Sandbox Code Playgroud)

不幸的是它不起作用,我不明白为什么,我无法解决这个问题.当我使用以下方法一次删除一行时,它工作正常:

TgData = TgData[2:nrow(TgData),]
Run Code Online (Sandbox Code Playgroud)

或类似的东西.

当我只使用前13000行时,它也可以工作.

但它不适用于我的实际数据,有32.000行.

我做错了什么?这对我来说似乎毫无意义.

r

67
推荐指数
4
解决办法
13万
查看次数

使用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万
查看次数

从数据框中选择任何变量不是NA的行

可能重复:
删除R中数据文件的空行

假设我有一个数据帧 df

我想从中选择行,其中行中的任何变量都不是NA.也就是说我只想排除所有变量所在的行NA

r

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

标签 统计

r ×3

dplyr ×1

tidyverse ×1