내 데이터에 하나의 열이 있는데 행의 각 "/"다음에 열을 추가로 만들려고합니다. 내 관련된 이전 질문에 대한 답변은 here입니다. system.time(replicate(75000000, res.df))
가 오류를 반환 작업 속도를 높이는 방법 R
res <- strsplit(as.character(mydata$ALL),"/", fixed=T)
res.df <- as.data.frame(do.call(rbind, lapply(lapply(res, factor, levels
=unique(unlist(res))), table)))
하지만 매우 느린 행 수백만
... :> dput(mydata)
structure(list(ALL = structure(c(1L, 4L, 4L, 3L, 2L), .Label = c("/ca/put/
sent_1/fe.gr/eq2_on/eq2_off",
"/ca/put/sent_1/fe.gr/eq2_on/eq2_off/cbr_LBL", "/ca/put/sent_1/fe.gr/eq2_o
n/eq2_off/cni_at.p3x.4",
"/ca/put/sent_1/fe.gr/eq2_on/eq2_off/hi.on/hi.ov"), class = "factor")), .N
ames = "ALL", class = "data.frame", row.names = c(NA,
-5L))
다음 작품 5 행의 샘플에 잘 : 여기에 데이터의 처음 5 행은 타이밍 563.04 21.28 644.77
(Error: cannot allocate vector of size 2.8Gb...):
에서 정지 원래 데이터 400M 통해 행 및 "/"의 생성은 약 100 열 사이의 문자열이다. R에서 위의 작업을 빠르게 할 수있는 방법이 있습니까?
이전 질문에서 Tyler의 대답을 시도하십시오. 내 시스템에 대한 빠른 테스트를 통해 자신이 가장 빠르다고 나타났습니다. – A5C1D2H2I1M1N2O1R2T1
테스트 데이터보다 큰 데이터에 대한 응답을 벤치마킹 했습니까? 테스트가 매우 작기 때문에 일부 솔루션은 더 큰 데이터로 더 잘 확장되고 현재의 방법보다 빠르게 될 수 있습니다. –
나는 문제가 RAM에서 빠져서 속도가 아니라고 생각한다. (이것은 오류 메시지가 기본적으로 알려주는 것이다.) 하지만 400MM 행은 R에서의 복잡한 작업을위한 엄청난 양의 데이터 세트입니다. –