<p>我使用了前8行数据进行测试。第9行是再见,我想你应该用不同的方式来处理这些问题。如果没有,则发布问题构造代码,这在说明边缘情况时更为彻底。这与(字母.句点.2nums)(空格|星号)(空格)(字母.句点,在读取前插入逗号。在</p>
<pre><code>read.table(text=sub(
patt= "^([[:alpha:]]\\.[0-9]{2})([ *])([ ]{1,5})([a-zA-Z .-]{3,15})([ ])",
repl= "\\1,\\2,\\4,",
dat[1:8]) ,
sep=",", stringsAsFactors=FALSE,quote="\"")
V1 V2 V3 V4
1 S.11 * N. ENGLAND L -8' 21-23 u44'
2 S.18 TAMPA BAY W -7 40-7 u49'
3 S.25 Buffalo L -4' 18-33 o48
4 O.02 L. ANGELES L -9' 13-17 u43'
5 O.06 * San Francisco W -3' 33-21 o43'
6 O.17 * N.Y. JETS W -7' 28-3 u46
7 O.23 * SEATTLE-ot L -1' 6-6 u43'
8 O.30 Carolina L +2' 20-30 o46
</code></pre>
<p>这将创建<code>dat</code>项:</p>
^{pr2}$
<p>最后一个解析尾随材料的步骤可能是通过另一个调用读表,这次只使用默认的空格分隔符。如果需要逐行分析,也可以使用<code>scan</code>-函数:</p>
<pre><code>> read.table(text=dat2$V4)
V1 V2 V3 V4
1 L -8' 21-23 u44'
2 W -7 40-7 u49'
3 L -4' 18-33 o48
4 L -9' 13-17 u43'
5 W -3' 33-21 o43'
6 W -7' 28-3 u46
7 L -1' 6-6 u43'
8 L +2' 20-30 o46
</code></pre>