2017-11-16 10 views
-2

고유 한 성 및 이름과 주소의 100 행이있는 r 데이터 프레임이 있습니다. 날씨 1과 날씨 2에 대한 열도 있습니다. 각 행마다 50과 100 사이의 임의의 수의 복사본을 만들고 싶습니다. 내가 어떻게 그럴 수 있니? 내가 한 일
안양 $의 FNAME 안양 $의 LNAME 안양 $ 거리 안양 $ 타운 DF % 상태 안양 $의이 아마이 작업을 수행하는 가장 쉬운 방법은 아니다 $ weather2데이터 프레임의 여러 행의 복사본을 무작위로 만듭니다.

답변

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 
+0

'map_dfr() '중 하나이다 R에서 가장 과소 평가 된 기능 –

+0

고맙습니다. 매우 도움이됩니다. – Mike

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)), ] 

+0

## 감사합니다. 위대한 – Mike

+1

당신은 오신 것을 환영합니다. 도움이된다면 대답 중 하나를 [accepting] (https://stackoverflow.com/help/someone-answers)라고 생각하십시오. 귀하의 게시물에 여러 개의 좋은 답변이 표시되어 있으며 답변 옆에있는 화살표를 클릭하여 도움을 준 항목을 수락하기 시작했습니다. 대답을 수락하는 것은 강제적 인 것은 아니지만 그 해답이 문제를 해결하는 데 도움이된다면 권장됩니다. – LyzandeR