首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >删除R中数据文件的空行

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

Stack Overflow用户
提问于 2011-06-22 16:43:30
回答 6查看 202.5K关注 0票数 89

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

代码语言:javascript
复制
myData<-myData[-which(apply(myData,1,function(x)all(is.na(x)))),]

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

代码语言:javascript
复制
myData$newCol[1] <- -999

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

不幸的是,它不能工作,我真的不明白为什么,我不能解决这个问题。当我使用以下命令一次删除一行时,它可以正常工作:

代码语言:javascript
复制
TgData = TgData[2:nrow(TgData),]

或者任何类似的东西。

当我只使用前13.000行时,它也是有效的。

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

我做错什么了?这对我来说似乎没有任何意义。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2011-06-22 17:33:28

我假设您想要删除全部为NAs的行。然后,您可以执行以下操作:

代码语言:javascript
复制
data <- rbind(c(1,2,3), c(1, NA, 4), c(4,6,7), c(NA, NA, NA), c(4, 8, NA)) # sample data
data
     [,1] [,2] [,3]
[1,]    1    2    3
[2,]    1   NA    4
[3,]    4    6    7
[4,]   NA   NA   NA
[5,]    4    8   NA

data[rowSums(is.na(data)) != ncol(data),]
     [,1] [,2] [,3]
[1,]    1    2    3
[2,]    1   NA    4
[3,]    4    6    7
[4,]    4    8   NA

如果要删除至少包含一个NA的行,只需更改条件:

代码语言:javascript
复制
data[rowSums(is.na(data)) == 0,]
     [,1] [,2] [,3]
[1,]    1    2    3
[2,]    4    6    7
票数 117
EN

Stack Overflow用户

发布于 2016-05-19 19:59:00

如果您有空行,而不是NAs,则可以执行以下操作:

代码语言:javascript
复制
data[!apply(data == "", 1, all),]

要同时删除(NAs和空),请执行以下操作:

代码语言:javascript
复制
data <- data[!apply(is.na(data) | data == "", 1, all),]
票数 66
EN

Stack Overflow用户

发布于 2019-03-23 09:44:34

以下是一些dplyr选项:

代码语言:javascript
复制
# sample data
df <- data.frame(a = c('1', NA, '3', NA), b = c('a', 'b', 'c', NA), c = c('e', 'f', 'g', NA))

library(dplyr)

# remove rows where all values are NA:
df %>% filter_all(any_vars(!is.na(.)))
df %>% filter_all(any_vars(complete.cases(.)))  


# remove rows where only some values are NA:
df %>% filter_all(all_vars(!is.na(.)))
df %>% filter_all(all_vars(complete.cases(.)))  

# or more succinctly:
df %>% filter(complete.cases(.))  
df %>% na.omit

# dplyr and tidyr:
library(tidyr)
df %>% drop_na
票数 17
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6437164

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档