解析包含R中多个部分的文本文件
Parsing a text file containing multiple sections in R
我有一个包含 130 table 的文本文件,由分隔符 ' DLM'
分隔。我尝试在 R 中使用包 reader
并定义默认分隔符如下,但它仍然读取整个文件。
reader::reader("Path_to_file.txt", def= "\' DLM'", one.byte = FALSE)
是否可以解析文件并只读取特定于 table 名称的行?例如,如果我指定'B2',我是否可以只读取table B2 的行?我似乎无法解决 reader 中的分隔符问题。感谢您的帮助!
示例数据集:
'A1',2018,10,'655033655206 1',,,81,
'A1',2019,4,'655033655206 1',,,63,
'A1',2011,1,'655034655045 1',.03486,.05829,52,
' DLM','B2',2011,1,'5BON AQUA TP',361239,161,,,0,
'B2',2001,1,'5BON AQUA TN',361240,161,22.7,4.97,0,
'B2',2002,1,'5CON FIRE TN',363240,161,22.7,4.97,0,
' DLM','C1','CGDF09',
'C1','W XYZ',
'C1','A BCD',
也许尝试删除定界符,然后检查哪一行以 'B2'
开头?
您可以使用 stringi
包中的此功能:
stri_startswith_fixed(c("A1,1,2,3","B2,3,4,5","C2,3,,5"), "B2")
# [1] FALSE TRUE FALSE
我有一个包含 130 table 的文本文件,由分隔符 ' DLM'
分隔。我尝试在 R 中使用包 reader
并定义默认分隔符如下,但它仍然读取整个文件。
reader::reader("Path_to_file.txt", def= "\' DLM'", one.byte = FALSE)
是否可以解析文件并只读取特定于 table 名称的行?例如,如果我指定'B2',我是否可以只读取table B2 的行?我似乎无法解决 reader 中的分隔符问题。感谢您的帮助!
示例数据集:
'A1',2018,10,'655033655206 1',,,81,
'A1',2019,4,'655033655206 1',,,63,
'A1',2011,1,'655034655045 1',.03486,.05829,52,
' DLM','B2',2011,1,'5BON AQUA TP',361239,161,,,0,
'B2',2001,1,'5BON AQUA TN',361240,161,22.7,4.97,0,
'B2',2002,1,'5CON FIRE TN',363240,161,22.7,4.97,0,
' DLM','C1','CGDF09',
'C1','W XYZ',
'C1','A BCD',
也许尝试删除定界符,然后检查哪一行以 'B2'
开头?
您可以使用 stringi
包中的此功能:
stri_startswith_fixed(c("A1,1,2,3","B2,3,4,5","C2,3,,5"), "B2")
# [1] FALSE TRUE FALSE