【发布时间】:2018-03-08 14:17:22
【问题描述】:
我有一个巨大的文件(序列比对的方形数据文件)并且想将每个位置放入一个单独的列中,但是 readr::read_delim 不能使用空分隔符,对于 readr::read_fwf 似乎你需要指定每个位置?我有超过 35000 个职位。
示例输入文件:
EIGMEYRTVSGVAGPLVILDKVKGPKYQEI.....
EIGMEYRTVSGVAGPLVILDKVKGPKYQEI.....
EIGMEYRTVSGVAGPLVILDKVKGPKYQEI.....
输出:
col1 col2 col3 col4 col5 col6....
E I G M E Y.....
E I G M E Y.....
E I G M E Y.....
【问题讨论】:
-
每个职位是什么意思?给我们一个数据示例以及您希望它的样子。
-
也许使用
readLines(),然后使用strsplit(myDF$myCol, split = "")。请提供示例输入文本文件和预期输出。 -
谢谢,我试着添加一个例子。但基本上我只想为输入文件中的每个垂直位置/字符创建一个新列。
-
read.fwf不需要输入 35000 个,只需widths = rep(1, 35000)。如果您需要计算字符数,请使用系统命令来完成,例如,system("head -n 1 yourfile | wc -m")如果您使用的是 unix-alike。