Пропуск определенных строк в CSV-файле с меньшим количеством нет. столбцов и чтение остального
У меня есть высокочастотные данные в .csv
файл, который состоит из котировок ордеров и торговых котировок. Ниже приведен пример первых 13 строк набора данных из 600000 строк: (извините за формат, копирование / вставка не поместится во все столбцы в одной строке, поэтому я их разложил)
1442527200000750850 11539422 15110 1 1 15120 4 3 15105 1 1 15125 17 2 15100 4 3 15130 8 2 15095 7 6 15135 3 1 15090 33 3 15140 3 1 15085 1 1 15145 4 4 15080 2 1 15150 2 2 15075 2 2 15160 2 2 15070 1 1 15165 3 2 0 0 0 15170 6 1
1442527200000750850 11539422 15110 1 1 15120 4 3 15105 1 1 15125 17 2 15100 4 3 15130 8 2 15095 7 6 15135 3 1 15090 33 3 15140 3 1 15085 1 1 15145 4 4 15080 2 1 15150 2 2 15075 2 2 15160 2 2 15070 1 1 15165 3 2 15060 3 3 15170 6 1
1442527200000750850 11539422 15110 1 1 15120 2 2 15105 1 1 15125 17 2 15100 4 3 15130 8 2 15095 7 6 15135 3 1 15090 33 3 15140 3 1 15085 1 1 15145 4 4 15080 2 1 15150 2 2 15075 2 2 15160 2 2 15070 1 1 15165 3 2 15060 3 3 15170 6 1
1442527200024857519 11539479 15115 1 1 15120 2 2 15110 1 1 15125 17 2 15105 1 1 15130 8 2 15100 4 3 15135 3 1 15095 7 6 15140 3 1 15090 33 3 15145 4 4 15085 1 1 15150 2 2 15080 2 1 15160 2 2 15075 2 2 15165 3 2 15070 1 1 15170 6 1
1442527200024960184 11539480 15115 2 2 15120 2 2 15110 1 1 15125 17 2 15105 1 1 15130 8 2 15100 4 3 15135 3 1 15095 7 6 15140 3 1 15090 33 3 15145 4 4 15085 1 1 15150 2 2 15080 2 1 15160 2 2 15075 2 2 15165 3 2 15070 1 1 15170 6 1
1442527200025091242 11539482 15115 2 2 15120 2 2 15110 1 1 15125 17 2 15105 1 1 15130 8 2 15100 4 3 15135 3 1 15095 7 6 15140 3 1 15090 33 3 15145 4 4 15085 1 1 15150 2 2 15080 2 1 15160 2 2 15075 2 2 15165 3 2 15070 1 1 15170 7 2
1442527200060240623 11539555 15115 2 2 15120 2 2 15110 1 1 15125 17 2 15105 1 1 15130 8 2 15100 4 3 15135 3 1 15095 7 6 15140 3 1 15090 33 3 15145 4 4 15085 1 1 15150 2 2 15080 2 1 15160 2 2 15075 3 3 15165 3 2 15070 1 1 15170 7 2
1442527200065644806 11539556 15115 2 2 15120 2 2 15110 1 1 15125 17 2 15105 1 1 15130 8 2 15100 4 3 15135 4 2 15095 7 6 15140 3 1 15090 33 3 15145 4 4 15085 1 1 15150 2 2 15080 2 1 15160 2 2 15075 3 3 15165 3 2 15070 1 1 15170 7 2
1442527200088944431 11539565 15115 2 2 15120 2 2 15110 1 1 15125 17 2 15105 1 1 15130 8 2 15100 4 3 15135 4 2 15095 7 6 15140 3 1 15090 33 3 15145 4 4 15085 2 2 15150 2 2 15080 2 1 15160 2 2 15075 3 3 15165 3 2 15070 1 1 15170 7 2
1442527200088944431 11539565 15115 2 2 15120 2 2 15110 1 1 15125 17 2 15105 1 1 15130 8 2 15100 4 3 15135 4 2 15095 7 6 15140 3 1 15090 33 3 15145 4 4 15085 2 2 15150 2 2 15080 2 1 15160 2 2 15075 2 2 15165 3 2 15070 1 1 15170 7 2
1442527200323230870 11539621 15115 3 3 15120 2 2 15110 1 1 15125 17 2 15105 1 1 15130 8 2 15100 4 3 15135 4 2 15095 7 6 15140 3 1 15090 33 3 15145 4 4 15085 2 2 15150 2 2 15080 2 1 15160 2 2 15075 2 2 15165 3 2 15070 1 1 15170 7 2
1442527200323600606 11539622 15115 3 3 15120 1 1 15110 1 1 15125 17 2 15105 1 1 15130 8 2 15100 4 3 15135 4 2 15095 7 6 15140 3 1 15090 33 3 15145 4 4 15085 2 2 15150 2 2 15080 2 1 15160 2 2 15075 2 2 15165 3 2 15070 1 1 15170 7 2
1442527200324698612 11539623 15120 1 1
Как вы можете видеть, последняя строка в этом примере имеет только 5 столбцов, в то время как другие имеют еще много. Строка с 5 столбцами - строка исполнения сделки, а остальные - кавычки ордера. В основном, я хочу прочитать csv
файл, пропуская эти торговые строки только с 5 столбцами и прочитайте остальную часть файла, чтобы я мог начать свой анализ на Bid
/ Ask
цитаты.
Я пытался использовать read.csv()
функция, но я не могу понять, как ее кодировать, чтобы пропустить торговые строки ( 5 строк столбцов) и только читать кавычки ордера, он читает все и дает мне NaN
для пустых столбцов в торговой строке. Я также попытался открыть соединение и затем использовать функцию сканирования, но снова столкнулся с той же проблемой. Есть ли способ, которым я могу положить в if
утверждение где-то там и пропустить строки или как-то иначе?
В случае необходимости формат данных следующий:
ORDER_BOOK: ( timestamp_in_ns ) ( feed-sequence-number ) x bid_price_in_USD, bid_qty, number_of_bid_orders, ask_price_in_USD, ask_qty, number_of_ask_orders, .....
ИЛИ ЖЕ
TRADE: ( timestamp_in_ns ) ( feed-sequence-number ) trade_price_in_USD, trade_qty, trade_side ( 1 for Buy and 2 for Sell, might be 0 if CME doesn't give us this information for some trade )
В наборе данных нет заголовков, и объекты разделяются ""
Любая помощь будет принята с благодарностью. Пожалуйста, дайте мне знать, если вам нужна дополнительная информация.
1 ответ
Ты можешь использовать complete.cases
чтобы обнаружить полные строки:
X <- read.csv(filename,sep=" ")
X <- X[-which(!complete.cases(X)),]