Я думаю, что это возможно, но я ищу способ сопоставить базовые типы в R, используя пакет rprotobuf. Я хочу создать сеть/сервер, очень похожую на Rserve, но используя протокольные буферы для сериализации данных, а не для QAP-протокола Rserve. Мой вопрос в том, как можно сопоставить что-то вроде data.frame в буфер протокола. Вот пример того, что я хотел бы, чтобы он выглядел, но дайте мне знать, если я буду делать это неправильно.Как использовать RProtobuf для сопоставления базовых типов R или объектов SEXP
message TextCell {
required string name = 1;
}
message NumericCell {
repeated int32 num 1;
}
message TextColumn {
repeated TextCell text 1;
}
message NumericColumn {
repeated NumericCell number 1;
}
message DataFrame {
optional NumericColumn numbericColumn = 1;
optional TextColumn textColumns = 2;
}
Я дразнил это только сейчас, так что, вероятно, есть ошибки, но это понятие, что я смотрю на и он не принимает во внимание такие вещи, как двойников, которые, кажется, как плохая идея. Возможно, это лучшее решение для использования типа байтов и десериализации столбца с другой стороны. Не знаю, как напасть на эту проблему, и отзывы будут высоко оценены более знающими людьми.
Примечание. Я хочу использовать протокольные буферы из-за их эффективности хранения и возможности использовать еще много языков, но нет ничего плохого в протоколе QAP. Это очень быстро и эффективно.
Заранее спасибо
Я нашел код Rhipe, что-то почти так же, как и то, что я хочу сделать. https://github.com/saptarshiguha/RHIPE/blob/master/code/R/src/rexp.proto –