2017-06-14 130 views
0

我想在R中做一些显然非常简单的事情(对不起,但我对data.tables非常新手),但我没有设法得到正确的解决方案。我试着删除特定列与NA值的行(“Ground_Tru”这是我尝试为止;在R中的data.table中删除NA

all_data <- fread ("all_vbles.txt",header=TRUE, na.strings=c("NA","N/A","")) 
na.omit (all_data, cols="Ground_Tru") 

我得到的消息

空data.table(0行) 75周的cols:OID_,IN_FID,Polygon_ID,DIST_highw,DIST_railw,DIST_port ...

但是 “Ground_Tru” 现场有很多NA提前任何帮助值 感谢,

+0

如果你正在使用'na.omit'如果有任何NA中的一列,整个行会被省略。请让我们知道你想如何继续 – akrun

+0

'all_data [!is.na(Ground_Tru)]'? – simone

+0

@simone,它应该是'all_data [!is.na(Ground_Tru),]'保留所有非NA行。 – parth

回答

0

最后我设法解决了这个问题。显然,存在使用data.table库,所以我遵循的一个建议这里提供了一些问题,有R读取列名: read.table doesn't read in column names

所以代码变成这个样子:

library(data.table) 

read.table("all_vbles.txt",header=T,nrow=1,sep=",",dec=".",quote="") 
all_data <- fread ("all_vbles.txt",header=FALSE, skip=1, ,sep="auto", na.strings=c("NA","N/A","")) 
setnames (all_data,header) 
test_data <- na.omit (all_data, "Ground_Tru") 

这似乎工作精细。

+0

对不起,代码的第一行没有头< - read.table。 ... – vizpi

0

使用complete.cases

all_data <- all_data[complete.cases(all_data[, 'Ground_Tru'])]