왼쪽 열에 값이 있고 오른쪽 열에 해당 값의 빈도가있는 두 열 데이터 프레임이 있습니다. 이 데이터를 하나의 열만있는 새로운 데이터 프레임에 반영하고 싶습니다.rbind 루프를 더 빠르게 만들기
아래의 2 for 루프와 함께 작동하지만 내 데이터 (100k + 행 및 많은 데이터 프레임)가 매우 느립니다. 나는 적용 함수를 사용하여 시도했지만 그것을 밖으로 작동하지 못할 수 있습니다. data.table
와
library(tidyverse)
twocol <- tribble(
~value, ~count,
0.23076923, 5,
0.69076923, 3,
1.15230769, 4,
1.61384615, 4,
2.15230769, 3
) %>% as.data.frame()
make_onecol <- function(df) {
dfnew <- data.frame(value=NA)
df %>% filter(count!=0) -> df
for (i in 1:nrow(df)) {
n <- df[i, 2]
for (j in 1:n) {
dfnew <- rbind(dfnew, df[i, 1])
}
}
return(dfnew)
}
onecol <- make_onecol(twocol)
내가 말을하지 않지만, 각 '값''count' 시간을 반복하는 당신의 목표는 다음과 같습니다
준다? 그런 다음 간단히'rep (twocol $ value, twocol $ count)'를 수행 할 수 있습니다. – Roland