Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 从文件中提取数据-忽略前导注释行,但包括后面以开头的行#_R - Fatal编程技术网

R 从文件中提取数据-忽略前导注释行,但包括后面以开头的行#

R 从文件中提取数据-忽略前导注释行,但包括后面以开头的行#,r,R,我有一个文本文件,它总是有一个标题(行首不带“#”)。标题前可能有一些行,每行开头都有“#”。数据中可能有一些以“#”开头的行 我需要在头之前识别这些“#”符号行,并在读取文件之前跳过它们 资料 我想跳过4行并读取带有标题的文件 我试过了 dum.data使用rle和diff检查前导注释行。仅删除第一个组,并且仅当它位于任何非注释行之前时: r <- rle(diff(grep('^#', dum.data))) dum.data <- if (length(r$values) &a

我有一个文本文件,它总是有一个标题(行首不带“#”)。标题前可能有一些行,每行开头都有“#”。数据中可能有一些以“#”开头的行

我需要在头之前识别这些“#”符号行,并在读取文件之前跳过它们

资料

我想跳过4行并读取带有标题的文件 我试过了


dum.data使用
rle
diff
检查前导注释行。仅删除第一个组,并且仅当它位于任何非注释行之前时:

r <- rle(diff(grep('^#', dum.data)))
dum.data <- if (length(r$values) && r$values[1] == 1) tail(dum.data, -(r$lengths[1]+1)) else dum.data
dum.data
## [1] "Hugo_Symbol Entrez_Gene_Id"
## [2] "BAGE1   0"                 
## [3] "BAGE1   0"                 
## [4] "#errt      23"             
## [5] "RTRRT      23"             

r这真的很有帮助,但我一直在寻找一种方法来查找要跳过的行数,因为这是一个大脚本中的一个小修改,它从标题读取信息。我不想在这方面做更多的改变。知道跳过行将非常有用在
length(r$values)和&r$values[1]==1
的情况下,要跳过的行数是
-(r$length[1]+1)
,否则不跳过。
dum.data<-readLines(filename)
top<-"^#"
if(grepl((top,dum.data[1])){
    ret <- grep(top,dum.data)
}
r <- rle(diff(grep('^#', dum.data)))
dum.data <- if (length(r$values) && r$values[1] == 1) tail(dum.data, -(r$lengths[1]+1)) else dum.data
dum.data
## [1] "Hugo_Symbol Entrez_Gene_Id"
## [2] "BAGE1   0"                 
## [3] "BAGE1   0"                 
## [4] "#errt      23"             
## [5] "RTRRT      23"