将数据读入R删除或跳过包含字符的行
我相信这很简单,但我没有找到答案。我想将数据帧导入R,而不首先在文本编辑器中处理行。本质上,我希望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
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
),您也可以将其转换为数字。您是上帝派来的!非常感谢你!