如何从 R 中的固定宽度文本文件中删除空格

How to remove spaces from a fixed-width text file in R

我想将如下所示的文本文件加载到 R 中,删除所有空格,然后重写该文件。

1 061
061 1
0 081
080 1
0 061
060 1
1 051
051 1
0 101
100 1

我的方法是使用 readlines(),删除每行中的空格,然后重写。

这是最好的方法吗?

这个问题与仅仅询问如何从字符串中删除空格不同,因为它涉及以可预测模式构建为行的数据。

我不确定你删除空格的确切含义,但如果数据采用你描述的格式,那么 read.table 可以轻松读取它。

> tbl <- read.table(text = "
    1 061
    061 1
    0 081
    080 1
    0 061
    060 1
    1 051
    051 1
    0 101
    100 1
")
> tbl
    V1  V2
1    1  61
2   61   1
3    0  81
4   80   1
5    0  61
6   60   1
7    1  51
8   51   1
9    0 101
10 100   1

如果您随后想要合并列以便获得不带空格的字符串,只需执行此操作

> no_space <- apply(tbl, 1, function(row) paste0(row, collapse = ""))
> no_space
 [1] "161"  "611"  "081"  "801"  "061"  "601"  "151"  "511" 
 [9] "0101" "1001"

如果您想要更好的格式,cat 可以为您完成。

> cat(paste0(no_space, collapse = "\n"))
161
611
081
801
061
601
151
511
0101
1001

您可以使用 catfile 参数将其写入文件。