我已經從lending club下載數據並使用data.table
的fread()
函數將其加載到R.data.table使用所有列來創建字符串
對於每一行,我都希望data.table能夠以最有效的方式收集所有列中的所有信息並將其放入單個字符串中。我目前的功能是可行的,但是認爲這可能相當緩慢,並且可以從SO上的一些data.table專家處理一些改進。
foo <- function(y, dt_obj, col_names=colnames(dt_obj)){
paste0("http://localhost:8080/predict?",
paste0(col_names,"=",unlist(dt_obj[y,],use.names=FALSE),
collapse="&")
)
}
在上面的函數,y
是行數,dt_obj
是指使用的fread讀成R CSV數據。
然後我經過的每一行,並在數據使用以下行
dt[,strg:=sapply(seq(nrow(dt)),function(x){foo(x,dt_obj=dt)})]
然而,這似乎需要一段時間,相信速度如果能改善添加到我原來的data.table對象dt
一個更有效的foo
功能創建或以更有效的方式使用data.table ...
一如往常的任何幫助,將不勝感激......
我有一個很幼稚的建議。您是否嘗試在閱讀CSV時刪除列分隔符?應該正確讀取行,分隔字段的逗號將被視爲文本。 – 2015-11-04 14:15:28
你的鏈接被阻止從我的位置。如果有幫助,我發佈了示例數據。 –
感謝您的建議,非常整潔......但不幸的是,對於我的情況,csv數據僅僅是一個例子......我的數據已經在R中,通常使用readRDS讀取它,因爲它是RDS格式。 –