Проблема с чтением файла в r - количество наблюдений обычно интерпретируется как количество переменных - PullRequest
0 голосов
/ 08 мая 2020

Что я хочу сделать: Я хочу прочитать файл в r, содержащий 2 переменные и 2500 наблюдений для каждой переменной. Данные представляют собой вывод (список) функции из проекта python. У меня есть один список для каждой переменной (2 списка с 2500 точками данных). Сначала я скопировал данные в файл Excel, преобразовал его в файл csv и прочитал в r. Поскольку эта стратегия не сработала, я скопировал списки в текстовый файл.

Каков мой результат / проблема? Когда я читаю файл в r с помощью read.csv () ( очевидно, с файлом csv) Я получаю 1 наблюдение, но 2500 переменных (это должны быть 2 переменные по 2500 наблюдений в каждой). Когда я читаю файл в r с помощью read.table (), я получаю эту ошибку и это предупреждающее сообщение:

Error in read.table(file = "dataset.txt", header = TRUE) : 
  more columns than column names
In addition: Warning message:
In read.table(file = "dataset.txt", header = TRUE) :
  incomplete final line found by readTableHeader in 'dataset.txt'

Как я думаю, в чем проблема? Точки данных рядом, а не один под другим.

Пример: A = [0,25, 0,67, ..., 0,1] B = [0,03, 0,14, ..., 0,09] Я предполагаю, что R видит элементы, которые находятся рядом, как переменные, а все точки данных, которые находятся под переменными, как наблюдения и, возможно, первую строку как заголовок (так что первая строка рассматривается как заголовок, вторая строка как 1 наблюдение и все точки данных во второй строке рассматриваются как переменные).

Что я пробовал: 1. Я попытался разделить точки данных с помощью функции sep = ',', но это не изменило количество наблюдений или переменных (я пробовал это с кучей других знаков, таких как ';' '\') 2. Я попытался скопировать точки данных (из вывода на печать python) в Excel файл, но он всегда помещал точки данных один рядом с другим и давал мне er Или, что Excel работает только с максимум ~ 800 точками данных. 3. Я попытался создать файл csv в программе python с помощью csv.writer (), который переходит на новую строку после каждой запятой. Это дало мне пустой файл на выходе, я не знаю почему.

import csv

with open('dataset.txt','w', newline= '') as csvfile:
    simval_similar = csv.writer(csvfile, delimiter= ' ', quotechar=',', quoting=csv.QUOTE_ALL)
print(dataset.txt)
Чтобы доказать, что мое предположение (объяснено в разделе 'в чем, по-моему, проблема' ), я переставил 200 точек данных таким образом, чтобы они были перечислены одна под другой в текстовом файле (вручную) , что внезапно дало мне 200 наблюдений, что означает, что мое предположение, вероятно, было правильным (или, по крайней мере, частично). Но сделать это вручную, прежде всего, означало бы, что я должен сделать это для 5000 точек данных, и эта стратегия подвержена ошибкам. Я не знаю, как продолжить, и буду очень признателен за помощь ...
...