В настоящее время я борюсь со следующей проблемой в R: учитывая два списка a=(a1,...,an) и b=(b1,...,bn), я хочу получить список таких списков, как (( a1,b1),...,(an,bn)). Справочная информация: мне нужно преобразовать обычную таблицу/фрейм данных во вложенный json (например, с помощью jsonlite). В качестве примера кода рассмотрим таблицу данных с идентификаторами, широтами и долготами, причем последние два должны быть сведены в список с именем location:
library(data.table)
n<-5
data<-data.table(id=1:n,lon=1:n,lat=1:n)
Здесь мы могли бы использовать lapply для получения требуемого результата:
data$location<-lapply(1:nrow(data),function(x) list(data[x,c("lat","lon"),with=F]) )
Альтернативное разделение (быстрее для небольших, медленнее для больших наборов данных):
data$location<-list(split(data[,c("lat","lon"),with=F],1:nrow(data)))
Оба прекрасно работают в небольших масштабах, но для n >> 10 ^ 5 на моей машине требуется много времени. Есть ли у вас какое-либо решение для ускорения вычислений?