我对此有点问题。我所拥有的每个文件的标题如下所示:
*COUNTRY : US *
***************************************************
*CAPITAL : Washington, D.C, district of columbia *
*Language: English *
***************************************************
V1 V2 V3
然后是我的数据变量(V1,V2,...)。我想要做的只是从每个文件(英语,法语,西班牙语......)中取出语言并将其放入我的剧情脚本中。因为在我阅读文件时,我会在read.table
中跳过这些行,否则read.table
将无效。希望你理解我的问题。
答案 0 :(得分:4)
您可以使用以下内容:
## File name
filename <- "/tmp/temp.txt"
## Read the 5 first lines
header <- readLines(filename, n=5)
## Grep the language field in these lines
result <- grep("^\\*Language: .*$", header, value=TRUE)
## Extract the language string
sub("^\\*Language: ", "", result)
请注意,如果语言字段始终位于第4行,您只需执行以下操作:
filename <- "/tmp/temp.txt"
header <- readLines(filename, n=4)
sub("^\\*Language: ", "", header[4])
答案 1 :(得分:1)
我会打开file连接,读取标题数据,然后继续read.table以读取文件的其余部分。这样,您只能读取一次文件。像这样:
f <- file( "data.txt", open = "r" )
language <- NULL
while( TRUE ){
line <- readLines( f, 1L )
if( grepl( "*Language: ", line ) ){
language <- sub( "*Language: (.[*])", "\\1", line )
}
if( !is.null(language) && grepl("^[*][*]", line) ) break
}
read.table( f, header = TRUE )
close( f )