R:使用非常规分隔符读入数据

时间:2017-04-20 13:27:44

标签: r data-science

我必须将一些应力张量数据读入R.我的问题是,有不同的分离器。 格式如下:

#         x          0.25
#         y          0.25
#         z          0.25
#      Time
       10             (399372 39.0451 -1.93902 527425 39.0684 399372)
       20             (399416 41.2287 -2.49631 644992 41.28 399416)
       30             (399467 43.5114 -3.15059 754523 43.5898 399467)
       40             (399522 45.8039 -3.8709 854533 45.907 399522)
       50             (399578 47.9191 -4.61171 944239 48.0421 399578)
       60             (399636 47.0223 -4.92906 1.02356e+06 47.1576 399637)
       70             (399683 48.1545 -5.49135 1.09299e+06 48.3468 399684)
       80             (399730 48.8061 -6.02291 1.15336e+06 49.0016 399730)
       90             (399770 49.0056 -6.41127 1.2057e+06 49.1949 399771)
      100             (399806 48.824 -6.68195 1.25106e+06 48.999 399807)

是否有可能读取此数据? 我不知道它应该如何与read.table()一起使用,因为它有不同的分隔符。

1 个答案:

答案 0 :(得分:0)

如果有人对未来感兴趣,我找到了解决问题的方法。

带有函数import()的“rio”包导入右列中分隔的数据。它产生了这个:

V1 V2      V3       V4      V5     V6      V7
10 (145793 10.5674 -2.18718 204460 10.7067 145792)
20 (132416 11.1760 -2.71200 227972 11.2557 132415)
30 (121272 13.7487 -3.52620 238730 13.8021 121271)
40 (112642 17.1715 -4.34145 242543 17.2183 112642)
50 (106244 19.8864 -4.97571 243441 19.9316 106244)
60 (101639 21.5542 -5.37646 243567 21.5958 101639)
70 (98425.9 21.5644 -5.73843 243895 21.6033 98425.6)
80 (96283.1 22.9537 -5.78063 244811 22.9863 96282.8)
90 (94970.3 22.9823 -5.74898 246404 23.0129 94970)
100 (94301.8 22.8537 -5.66739 248666 22.8823 94301.5)

要删除括号并将带括号的列转换为类numeric,我使用以下代码:

sigma$V2 <- gsub("\\(", "", sigma$V2)
sigma$V7 <- gsub("\\)", "", sigma$V7)
sigma$V2 <- as.numeric(sigma$V2)
sigma$V7 <- as.numeric(sigma$V7)