在此帮忙表示赞赏。
我有一个专有的.CSV文件(太大而无法编辑),其中的列数多于其中的数据,例如:
col1 col2 col3 .... col98 col99
id1 1 tim "" "" "" ""
......
请注意每个字段的双引号,并且数据多于标题。
我想只阅读那些我知道确实有数据的列(例如col1,col2,col3),并忽略那些具有双引号(")或没有数据或没有相应标题的列(col 98-99,以及2个额外的未命名列。)
我尝试使用read.csv
读取它,但不幸的是,它会为没有数据的列(即带有引用的引号)引发错误:
td= read.csv(file.choose(), header = T, as.is = T, sep='"')
提前致谢,
答案 0 :(得分:2)
请注意,csv代表逗号分隔值,而不是这里的情况;但是,我们仍然可以像这样使用read.csv
:
Lines <- 'col1 col2 col3 col98 col99
id1 1 tim "" ""'
DF <- read.csv(text = Lines, as.is = TRUE, sep = "", quote = '"')
,并提供:
col1 col2 col3 col98 col99
1 id1 1 tim NA NA
如果您只想要列号已知的某些列,那么:
> DF[1:3]
col1 col2 col3
1 id1 1 tim
或检测并删除NAs列:
DF[!apply(is.na(DF), 2, all)]
,并提供:
col1 col2 col3
1 id1 1 tim