Как импортировать файл CSV в R со смещенными строками и столбцами? - PullRequest
0 голосов
/ 25 апреля 2019

Я пытаюсь импортировать результаты моделирования в R. Модель выдает 68 записей за шаг по времени.Однако форматирование файла .txt (с пробелами) отключено.Первые 5 записей помещаются в первую строку, а оттуда начинается новая строка для каждых 1-6 записей.Следовательно, импорт этого файла в формате CSV приводит к созданию кадра данных с 5 столбцами и 16 строками вместо одной строки с 68 столбцами.

Определение заголовков столбцов и использование параметра заполнения приводит к кадру данных с 68 столбцами, из которых все после 5-го заполняется NA.

col.names = paste0("V",seq_len(68)))

Мне кажется, что должна быть опция для сортировки этого временного ряда с фиксированным числом записей в строке.Чего мне не хватает?

Данные выглядят так:

        2013           1           1  0.0000000E+00  0.7999797    
  0.0000000E+00  0.7976342      0.7976342       4.600000      0.0000000E+00
   5.400000      0.9950000      0.0000000E+00   969.0231      0.0000000E+00
  0.0000000E+00
   134.2833      0.0000000E+00  7.5260596E-03  0.0000000E+00  0.0000000E+00
  0.2500000       453.5565       397.1019     -1.1351937E-04  1.1351937E-04
   37.85871       134.2833     -8.6918109E-05  0.3779435      0.8803711    
  0.0000000E+00 -1.1351937E-04  1.1351937E-04  -180.3156      1.0273202E-03
  0.0000000E+00  0.0000000E+00  0.0000000E+00  0.6856970      0.1142827    
  0.0000000E+00  0.0000000E+00   1.000000       1.000000      0.0000000E+00
  0.0000000E+00  -165.6710      0.0000000E+00   5.400000       77.18394    
  0.0000000E+00  0.0000000E+00  0.0000000E+00  0.0000000E+00  0.0000000E+00
  0.0000000E+00  0.0000000E+00  0.0000000E+00  0.0000000E+00  0.0000000E+00
  0.0000000E+00  0.0000000E+00  0.0000000E+00  0.0000000E+00  0.0000000E+00
  0.0000000E+00  1.1351937E-04  0.0000000E+00
  0.0000000E+00

1 Ответ

0 голосов
/ 25 апреля 2019

Не импортировать как CSV. Прочитайте это в единственную строку и затем проанализируйте это:

library(readr)
library(dplyr)
tx <- read_file('        2013           1           1  0.0000000E+00  0.7999797    
  0.0000000E+00  0.7976342      0.7976342       4.600000      0.0000000E+00
   5.400000      0.9950000      0.0000000E+00   969.0231      0.0000000E+00
  0.0000000E+00
   134.2833      0.0000000E+00  7.5260596E-03  0.0000000E+00  0.0000000E+00
  0.2500000       453.5565       397.1019     -1.1351937E-04  1.1351937E-04
   37.85871       134.2833     -8.6918109E-05  0.3779435      0.8803711    
  0.0000000E+00 -1.1351937E-04  1.1351937E-04  -180.3156      1.0273202E-03
  0.0000000E+00  0.0000000E+00  0.0000000E+00  0.6856970      0.1142827    
  0.0000000E+00  0.0000000E+00   1.000000       1.000000      0.0000000E+00
  0.0000000E+00  -165.6710      0.0000000E+00   5.400000       77.18394    
  0.0000000E+00  0.0000000E+00  0.0000000E+00  0.0000000E+00  0.0000000E+00
  0.0000000E+00  0.0000000E+00  0.0000000E+00  0.0000000E+00  0.0000000E+00
  0.0000000E+00  0.0000000E+00  0.0000000E+00  0.0000000E+00  0.0000000E+00
  0.0000000E+00  1.1351937E-04  0.0000000E+00
  0.0000000E+00') %>%  # Just put the filename here instead
  trimws()%>%
  strsplit('\\s+') %>%
  unlist()%>%
  as.numeric()

# tx 
# [1]  2.013000e+03  1.000000e+00  1.000000e+00  0.000000e+00  7.999797e-01  0.000000e+00  7.976342e-01  7.976342e-01  4.600000e+00
# [10]  0.000000e+00  5.400000e+00  9.950000e-01  0.000000e+00  9.690231e+02  0.000000e+00  0.000000e+00  1.342833e+02  0.000000e+00
# [19]  7.526060e-03  0.000000e+00  0.000000e+00  2.500000e-01  4.535565e+02  3.971019e+02 -1.135194e-04  1.135194e-04  3.785871e+01
# [28]  1.342833e+02 -8.691811e-05  3.779435e-01  8.803711e-01  0.000000e+00 -1.135194e-04  1.135194e-04 -1.803156e+02  1.027320e-03
# [37]  0.000000e+00  0.000000e+00  0.000000e+00  6.856970e-01  1.142827e-01  0.000000e+00  0.000000e+00  1.000000e+00  1.000000e+00
# [46]  0.000000e+00  0.000000e+00 -1.656710e+02  0.000000e+00  5.400000e+00  7.718394e+01  0.000000e+00  0.000000e+00  0.000000e+00
# [55]  0.000000e+00  0.000000e+00  0.000000e+00  0.000000e+00  0.000000e+00  0.000000e+00  0.000000e+00  0.000000e+00  0.000000e+00
# [64]  0.000000e+00  0.000000e+00  0.000000e+00  0.000000e+00  1.135194e-04  0.000000e+00  0.000000e+00
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...