Как читать ввод с терминала, используя / dev / stdin и read.csv ()?
м с помощью:
R version 3.0.0 (2013-04-03) -- "Masked Marvel"
Platform: x86_64-pc-linux-gnu (64-bit)
Я пытаюсь использоватьread.csv
для ввода небольшого фрагмента данных CSV + заголовка непосредственно из терминала.
Я столкнулся с проблемой, которая может быть связана сR пропускает строки из / dev / stdin а такжеread.csv, заголовок в первой строке, пропустить вторую строку но достаточно отличается (ответы там необъяснить то, что я вижу здесь), чтобы оправдать отдельный вопрос.
Кажется, что R пропускает строку заголовка и обрабатывает вторую строку (данные) как заголовок:
R> d d
X1 X2
1 3 4
R> colnames(d)
[1] "X1" "X2"
Я нашел обходной путь: так как по умолчаниюread.csv
имеетblank.lines.skip = TRUE
, Я ставлю ввод перед некоторыми пустыми строками. 5 пустых строк перед началом ввода - это минимум, необходимый для того, чтобы все заработало как положено. Кстати, одна строка с 5 пробелами работает так же хорошо, намекая на 5-байтовый (или более) требуемый заполнитель пробелов:
R> d d
a b
1 1 2
2 3 4
R> colnames(d)
[1] "a" "b"
Вопросы:
Почему нетt первый пример работает как положено?Зачем нужны 5 пустых строк или пробелов (даже 4Достаточно), чтобы это сработало?Есть ли лучший способ прочитать короткий фрагмент CSV прямо из терминала? (Я знаю оscan
а такжеreadLines
, но мои данные уже в формате csv, поэтому я хочу сделать его как можно более простым для чтения / анализа / назначения)