고유 한 성 및 이름과 주소의 100 행이있는 r 데이터 프레임이 있습니다. 날씨 1과 날씨 2에 대한 열도 있습니다. 각 행마다 50과 100 사이의 임의의 수의 복사본을 만들고 싶습니다. 내가 어떻게 그럴 수 있니? 내가 한 일
안양 $의 FNAME 안양 $의 LNAME 안양 $ 거리 안양 $ 타운 DF % 상태 안양 $의이 아마이 작업을 수행하는 가장 쉬운 방법은 아니다 $ weather2데이터 프레임의 여러 행의 복사본을 무작위로 만듭니다.
-2
A
답변
1
df라고 weather1,하지만 ...
여기에서 데이터 세트의 각 행에 대해 행을 선택하고 해당 행의 1-3 (하위 50-100) 사본을 만들고 마지막으로 모든 결과를 함께 쌓습니다. iris
및 속된 사용
library(dplyr)
library(purrr)
df <- tibble(foo = 1:3, bar = letters[1:3])
map_dfr(seq_len(nrow(df)), ~{
df %>%
slice(.x) %>%
sample_n(size = sample(1:3, 1), replace = TRUE)
})
#> # A tibble: 7 x 2
#> foo bar
#> <int> <chr>
#> 1 1 a
#> 2 1 a
#> 3 1 a
#> 4 2 b
#> 5 2 b
#> 6 3 c
#> 7 3 c
2
:
iris2
의 각 행은 무작위로 50 ~ 100 배 사이에서 복제 할
#example data
iris2 <- iris[1:100, ]
#replicate rows at random
iris2[rep(1:100, times = sample(50:100, 100, replace = TRUE)), ]
'map_dfr() '중 하나이다 R에서 가장 과소 평가 된 기능 –
고맙습니다. 매우 도움이됩니다. – Mike