如何使read.table()忽略有错误的行

时间:2014-04-09 13:33:46

标签: r csv dataframe row

我必须使用read.table读取csv文件,但我遇到一个小问题:我的csv包含一些类似的行:

  A  B  C
1 2  3  4
2 2  5  6
3 4  8  error:8
. .  .  .
. .  .  .
. .  .  .

我想删除我的csv文件中包含错误的所有行或删除错误并让行,我不知道是否可以使用R? 这是我的代码:

file <- paste("C:\\test.csv")
table <- read.table(file,sep=",",header=T,fill=TRUE)

1 个答案:

答案 0 :(得分:3)

这应该有效:

dat.file <- paste("C:\\test.csv")

# use readLines() to get file line-by-line 
dat.in <- readLines(dat.file)

# filter out "error"
dat.in <- dat.in[grep("error", dat.in, invert=TRUE)]

# turn structure into a string we can pass to textConnection
read.csv(textConnection(paste(dat.in, collapse="\n")), header=TRUE)

如果您使用的是Linux / OS X系统,我已经让您通过系统grep传输文件,但是叹了口气,#Windows。