将数据读入R删除或跳过包含字符的行

将数据读入R删除或跳过包含字符的行,r,R,我相信这很简单,但我没有找到答案。我想将数据帧导入R,而不首先在文本编辑器中处理行。本质上,我希望R在读入时做这件事。所以所有包含 FRAME 1 of *** OR ATOM-WISE TOTAL CONTACT ENERGY 将被跳过、删除或忽略 剩下的就是 Chain Resnum Atom number Energy(kcal/mol) ATOM C 500 1519 -2.1286 ATOM C 500 1520

我相信这很简单,但我没有找到答案。我想将数据帧导入R,而不首先在文本编辑器中处理行。本质上,我希望R在读入时做这件事。所以所有包含

FRAME   1 of ***
OR
ATOM-WISE TOTAL CONTACT ENERGY
将被跳过、删除或忽略

剩下的就是

Chain Resnum    Atom number Energy(kcal/mol)
ATOM      C     500   1519          -2.1286
ATOM      C     500   1520          -1.1334
ATOM      C     500   1521          -0.8180
ATOM      C     500   1522          -0.7727
有没有简单的解决办法?我不确定
read.table()
参数中的哪个
scan()
可以工作

编辑


我能够使用
readLines
gsub
读取文件并删除(非)必要的行。我从删除的单词中省略了左边的“”,现在我正在尝试将字符df转换为常规(数字)df。当我使用
data.frame(x)
as.data.frame(x)
时,剩下的数据框有100K行,只有一个变量。至少应该有5个变量。

readLines为文件的每一行提供一个带有一个字符串的向量。因此,在转换为数据帧之前,必须将这些字符串拆分为所需的元素。如果有很好的空格分隔值,请尝试:

m = matrix(unlist(strsplit(data, " +")), ncol=5, byrow=TRUE)
    # where 'data' is the name of the vector of strings
df = data.frame(m, stringsAsFactors=FALSE)

然后,对于每个包含数字数据的列,在要转换的列上使用
as.numeric()

这是速度问题吗?i、 导入后为什么不能删除这些行?文本使数据更难处理。删除这些行会给我一个数字数据框,这正是我想要的。您能给出一个包含数据行和非数据行的文件的更大示例吗?使用
readLines
,然后使用
grepl
排除与不需要的字符串列表匹配的行。或者,您可以运行系统命令以读取.表格,请参阅,一旦删除这些行(
as.numeric
),您也可以将其转换为数字。您是上帝派来的!非常感谢你!