如何在 R 中以 space 分隔的 .txt 跳过双 space?

How to skip double space in a space delimited .txt in R?

问题是我有多个原始数据,在多个 .txt 中,每个文件中都有这样的数据:

 -7.400513E-02  1.424561E-04 
 -.0592041  1.426086E-04 
 -4.440308E-02  1.436768E-04 
 -2.960205E-02  1.452942E-04 
 -1.480103E-02  1.473999E-04 
  0  1.499939E-04 
  1.480103E-02  1.531982E-04 
  2.960205E-02  1.567383E-04 
  4.440308E-02  1.603394E-04 
  .0592041  1.636658E-04 

我正在导入和混合所有这些数据,因此我可以使用它,使用下一个代码:

Listoffiles <- list.files(pattern = "txt")
Listofdata <- map(Listadearchivos, ~vroom(.x, delim = " ",
                                          col_names = FALSE, 
                                          col_types = c(.default = "n")))
Data1 <- do.call(rbind.data.frame, Listofdata)

问题是我得到的是 data.frame 和 NA 的混合,因为在原始数据中有用于数字符号的列,用于 + 和 - 用于 - 的空格,以及许多双空格作为分隔符,给我这样的结果:

    
 X1 X2 X3 X4 X5
1   NA  -0.08880615 NA  0.0001429749    NA
2   NA  -0.07400513 NA  0.0001424561    NA
3   NA  -0.05920410 NA  0.0001426086    NA
4   NA  -0.04440308 NA  0.0001436768    NA
5   NA  -0.02960205 NA  0.0001452942    NA
6   NA  -0.01480103 NA  0.0001473999    NA
7   NA  NA  0.00000000  NA  0.0001499939
8   NA  NA  0.01480103  NA  0.0001531982
9   NA  NA  0.02960205  NA  0.0001567383
10  NA  NA  0.04440308  NA  0.0001603394
11  NA  NA  0.05920410  NA  1.6366580000

我该怎么做才能只获得两列的值?

data.tablefread 正确解析了您的数据。

library(data.table)
Data1 <- fread("test-file.txt")
Data1
#              V1           V2
#  1: -0.07400513 0.0001424561
#  2: -0.05920410 0.0001426086
#  3: -0.04440308 0.0001436768
#  4: -0.02960205 0.0001452942
#  5: -0.01480103 0.0001473999
#  6:  0.00000000 0.0001499939
#  7:  0.01480103 0.0001531982
#  8:  0.02960205 0.0001567383
#  9:  0.04440308 0.0001603394
# 10:  0.05920410 0.0001636658

然后您可以使用 data.table::rbindlist 将 data.table 的列表折叠为单个 table。

Listadearchivos <- list.files(pattern = "txt")
Listofdata <- map(Listadearchivos, ~fread(.x))
Data1 <- as.data.frame(rbindlist(Listofdata))
Data1
#             V1           V2
# 1  -0.07400513 0.0001424561
# 2  -0.05920410 0.0001426086
# 3  -0.04440308 0.0001436768
# 4  -0.02960205 0.0001452942
# 5  -0.01480103 0.0001473999
# 6   0.00000000 0.0001499939
# 7   0.01480103 0.0001531982
# 8   0.02960205 0.0001567383
# 9   0.04440308 0.0001603394
# 10  0.05920410 0.0001636658