跳过没有逗号的行

时间:2016-02-24 13:24:21

标签: r csv

我有一个巨大的csv文件,我想将它导入R进行一些分析。 csv中的一些行没有任何逗号,需要丢弃。

R如何逐行读取csv并跳过这些行?

例如,这是列表

id,length,height
1,70,50
2,82,40
3,64,30
these lines
should be discarded
4,48,22
5,32,14

我希望在R中输入数据:

id,length,height
1,70,50
2,82,40
3,64,30
4,48,22
5,32,14

编辑:我applogize我没有发送一个好例子。我们如何改进这些数据的答案。我需要一个能够检测没有逗号的行的答案,而不是一个能够检测没有数字的行的答案。

id,length,height
1,70,50
2,82,40
3,64,30
rsammsa='b'
sdasdsa='a'
sadas='021210'
@sss
4,48,22
5,32,14

具有所需的输出

1 个答案:

答案 0 :(得分:4)

我们可以使用readLines读取数据,然后使用{{删除包含所有非数字字符的行以及从第一个(^)到最后一个($)的空格1}}。使用grep

读取行的子集
read.table/read.csv

更新

根据OP显示的新数据,我们可以修改lines <- readLines("yourfile.txt") lines1 <- lines[!grepl("^[A-Za-z ]+$", lines)] dat <- read.table(text=lines1, sep=",", header=TRUE, stringsAsFactors=FALSE) dat # id length height #1 1 70 50 #2 2 82 40 #3 3 64 30 #4 4 48 22 #5 5 32 14

grep

然后像以前一样阅读

lines1 <- lines[c(TRUE,!grepl('[^0-9,]', lines[-1]))]