Select a number or proportion of rows randomly from the data frame
sample_dt is a merged version of sample_n_dt and
sample_frac_dt, this could be convenient.
sample_dt(.data, n = NULL, prop = NULL, replace = FALSE, by = NULL)
sample_n_dt(.data, size, replace = FALSE, by = NULL)
sample_frac_dt(.data, size, replace = FALSE, by = NULL)A data.frame
Number of rows to select
Fraction of rows to select
Sample with or without replacement? Default uses FALSE.
(Optional) Character. Specify if you want to sample by group.
For sample_n_dt, the number of rows to select.
For sample_frac_dt, the fraction of rows to select.
data.table
sample_n_dt(mtcars, 10)
#> mpg cyl disp hp drat wt qsec vs am gear carb
#> <num> <num> <num> <num> <num> <num> <num> <num> <num> <num> <num>
#> 1: 15.8 8 351.0 264 4.22 3.170 14.50 0 1 5 4
#> 2: 19.7 6 145.0 175 3.62 2.770 15.50 0 1 5 6
#> 3: 21.4 6 258.0 110 3.08 3.215 19.44 1 0 3 1
#> 4: 14.3 8 360.0 245 3.21 3.570 15.84 0 0 3 4
#> 5: 10.4 8 472.0 205 2.93 5.250 17.98 0 0 3 4
#> 6: 17.3 8 275.8 180 3.07 3.730 17.60 0 0 3 3
#> 7: 15.5 8 318.0 150 2.76 3.520 16.87 0 0 3 2
#> 8: 21.0 6 160.0 110 3.90 2.875 17.02 0 1 4 4
#> 9: 13.3 8 350.0 245 3.73 3.840 15.41 0 0 3 4
#> 10: 27.3 4 79.0 66 4.08 1.935 18.90 1 1 4 1
sample_n_dt(mtcars, 50, replace = TRUE)
#> mpg cyl disp hp drat wt qsec vs am gear carb
#> <num> <num> <num> <num> <num> <num> <num> <num> <num> <num> <num>
#> 1: 24.4 4 146.7 62 3.69 3.190 20.00 1 0 4 2
#> 2: 14.7 8 440.0 230 3.23 5.345 17.42 0 0 3 4
#> 3: 19.2 6 167.6 123 3.92 3.440 18.30 1 0 4 4
#> 4: 16.4 8 275.8 180 3.07 4.070 17.40 0 0 3 3
#> 5: 15.0 8 301.0 335 3.54 3.570 14.60 0 1 5 8
#> 6: 10.4 8 472.0 205 2.93 5.250 17.98 0 0 3 4
#> 7: 15.2 8 275.8 180 3.07 3.780 18.00 0 0 3 3
#> 8: 19.2 8 400.0 175 3.08 3.845 17.05 0 0 3 2
#> 9: 21.0 6 160.0 110 3.90 2.620 16.46 0 1 4 4
#> 10: 15.2 8 304.0 150 3.15 3.435 17.30 0 0 3 2
#> 11: 17.3 8 275.8 180 3.07 3.730 17.60 0 0 3 3
#> 12: 16.4 8 275.8 180 3.07 4.070 17.40 0 0 3 3
#> 13: 22.8 4 108.0 93 3.85 2.320 18.61 1 1 4 1
#> 14: 14.3 8 360.0 245 3.21 3.570 15.84 0 0 3 4
#> 15: 17.8 6 167.6 123 3.92 3.440 18.90 1 0 4 4
#> 16: 26.0 4 120.3 91 4.43 2.140 16.70 0 1 5 2
#> 17: 24.4 4 146.7 62 3.69 3.190 20.00 1 0 4 2
#> 18: 13.3 8 350.0 245 3.73 3.840 15.41 0 0 3 4
#> 19: 26.0 4 120.3 91 4.43 2.140 16.70 0 1 5 2
#> 20: 24.4 4 146.7 62 3.69 3.190 20.00 1 0 4 2
#> 21: 22.8 4 140.8 95 3.92 3.150 22.90 1 0 4 2
#> 22: 33.9 4 71.1 65 4.22 1.835 19.90 1 1 4 1
#> 23: 18.1 6 225.0 105 2.76 3.460 20.22 1 0 3 1
#> 24: 30.4 4 95.1 113 3.77 1.513 16.90 1 1 5 2
#> 25: 19.7 6 145.0 175 3.62 2.770 15.50 0 1 5 6
#> 26: 21.5 4 120.1 97 3.70 2.465 20.01 1 0 3 1
#> 27: 27.3 4 79.0 66 4.08 1.935 18.90 1 1 4 1
#> 28: 10.4 8 460.0 215 3.00 5.424 17.82 0 0 3 4
#> 29: 27.3 4 79.0 66 4.08 1.935 18.90 1 1 4 1
#> 30: 14.7 8 440.0 230 3.23 5.345 17.42 0 0 3 4
#> 31: 17.3 8 275.8 180 3.07 3.730 17.60 0 0 3 3
#> 32: 32.4 4 78.7 66 4.08 2.200 19.47 1 1 4 1
#> 33: 15.0 8 301.0 335 3.54 3.570 14.60 0 1 5 8
#> 34: 19.2 6 167.6 123 3.92 3.440 18.30 1 0 4 4
#> 35: 15.8 8 351.0 264 4.22 3.170 14.50 0 1 5 4
#> 36: 22.8 4 108.0 93 3.85 2.320 18.61 1 1 4 1
#> 37: 18.7 8 360.0 175 3.15 3.440 17.02 0 0 3 2
#> 38: 15.2 8 304.0 150 3.15 3.435 17.30 0 0 3 2
#> 39: 15.2 8 304.0 150 3.15 3.435 17.30 0 0 3 2
#> 40: 18.1 6 225.0 105 2.76 3.460 20.22 1 0 3 1
#> 41: 17.3 8 275.8 180 3.07 3.730 17.60 0 0 3 3
#> 42: 21.4 4 121.0 109 4.11 2.780 18.60 1 1 4 2
#> 43: 19.7 6 145.0 175 3.62 2.770 15.50 0 1 5 6
#> 44: 15.5 8 318.0 150 2.76 3.520 16.87 0 0 3 2
#> 45: 15.5 8 318.0 150 2.76 3.520 16.87 0 0 3 2
#> 46: 21.0 6 160.0 110 3.90 2.875 17.02 0 1 4 4
#> 47: 15.2 8 304.0 150 3.15 3.435 17.30 0 0 3 2
#> 48: 21.4 4 121.0 109 4.11 2.780 18.60 1 1 4 2
#> 49: 18.7 8 360.0 175 3.15 3.440 17.02 0 0 3 2
#> 50: 15.5 8 318.0 150 2.76 3.520 16.87 0 0 3 2
#> mpg cyl disp hp drat wt qsec vs am gear carb
sample_frac_dt(mtcars, 0.1)
#> mpg cyl disp hp drat wt qsec vs am gear carb
#> <num> <num> <num> <num> <num> <num> <num> <num> <num> <num> <num>
#> 1: 26.0 4 120.3 91 4.43 2.14 16.70 0 1 5 2
#> 2: 18.7 8 360.0 175 3.15 3.44 17.02 0 0 3 2
#> 3: 16.4 8 275.8 180 3.07 4.07 17.40 0 0 3 3
sample_frac_dt(mtcars, 1.5, replace = TRUE)
#> mpg cyl disp hp drat wt qsec vs am gear carb
#> <num> <num> <num> <num> <num> <num> <num> <num> <num> <num> <num>
#> 1: 33.9 4 71.1 65 4.22 1.835 19.90 1 1 4 1
#> 2: 27.3 4 79.0 66 4.08 1.935 18.90 1 1 4 1
#> 3: 21.0 6 160.0 110 3.90 2.620 16.46 0 1 4 4
#> 4: 17.3 8 275.8 180 3.07 3.730 17.60 0 0 3 3
#> 5: 19.2 6 167.6 123 3.92 3.440 18.30 1 0 4 4
#> 6: 21.0 6 160.0 110 3.90 2.875 17.02 0 1 4 4
#> 7: 30.4 4 75.7 52 4.93 1.615 18.52 1 1 4 2
#> 8: 19.7 6 145.0 175 3.62 2.770 15.50 0 1 5 6
#> 9: 24.4 4 146.7 62 3.69 3.190 20.00 1 0 4 2
#> 10: 19.2 6 167.6 123 3.92 3.440 18.30 1 0 4 4
#> 11: 15.8 8 351.0 264 4.22 3.170 14.50 0 1 5 4
#> 12: 19.2 6 167.6 123 3.92 3.440 18.30 1 0 4 4
#> 13: 21.4 4 121.0 109 4.11 2.780 18.60 1 1 4 2
#> 14: 19.2 8 400.0 175 3.08 3.845 17.05 0 0 3 2
#> 15: 10.4 8 472.0 205 2.93 5.250 17.98 0 0 3 4
#> 16: 22.8 4 108.0 93 3.85 2.320 18.61 1 1 4 1
#> 17: 21.4 4 121.0 109 4.11 2.780 18.60 1 1 4 2
#> 18: 19.7 6 145.0 175 3.62 2.770 15.50 0 1 5 6
#> 19: 18.7 8 360.0 175 3.15 3.440 17.02 0 0 3 2
#> 20: 21.4 6 258.0 110 3.08 3.215 19.44 1 0 3 1
#> 21: 15.2 8 304.0 150 3.15 3.435 17.30 0 0 3 2
#> 22: 32.4 4 78.7 66 4.08 2.200 19.47 1 1 4 1
#> 23: 21.0 6 160.0 110 3.90 2.620 16.46 0 1 4 4
#> 24: 18.1 6 225.0 105 2.76 3.460 20.22 1 0 3 1
#> 25: 27.3 4 79.0 66 4.08 1.935 18.90 1 1 4 1
#> 26: 18.7 8 360.0 175 3.15 3.440 17.02 0 0 3 2
#> 27: 10.4 8 460.0 215 3.00 5.424 17.82 0 0 3 4
#> 28: 21.0 6 160.0 110 3.90 2.620 16.46 0 1 4 4
#> 29: 33.9 4 71.1 65 4.22 1.835 19.90 1 1 4 1
#> 30: 32.4 4 78.7 66 4.08 2.200 19.47 1 1 4 1
#> 31: 10.4 8 472.0 205 2.93 5.250 17.98 0 0 3 4
#> 32: 18.1 6 225.0 105 2.76 3.460 20.22 1 0 3 1
#> 33: 15.5 8 318.0 150 2.76 3.520 16.87 0 0 3 2
#> 34: 14.7 8 440.0 230 3.23 5.345 17.42 0 0 3 4
#> 35: 16.4 8 275.8 180 3.07 4.070 17.40 0 0 3 3
#> 36: 15.2 8 304.0 150 3.15 3.435 17.30 0 0 3 2
#> 37: 18.1 6 225.0 105 2.76 3.460 20.22 1 0 3 1
#> 38: 19.7 6 145.0 175 3.62 2.770 15.50 0 1 5 6
#> 39: 19.2 6 167.6 123 3.92 3.440 18.30 1 0 4 4
#> 40: 15.8 8 351.0 264 4.22 3.170 14.50 0 1 5 4
#> 41: 19.2 8 400.0 175 3.08 3.845 17.05 0 0 3 2
#> 42: 21.5 4 120.1 97 3.70 2.465 20.01 1 0 3 1
#> 43: 17.3 8 275.8 180 3.07 3.730 17.60 0 0 3 3
#> 44: 18.7 8 360.0 175 3.15 3.440 17.02 0 0 3 2
#> 45: 19.2 6 167.6 123 3.92 3.440 18.30 1 0 4 4
#> 46: 27.3 4 79.0 66 4.08 1.935 18.90 1 1 4 1
#> 47: 30.4 4 95.1 113 3.77 1.513 16.90 1 1 5 2
#> 48: 15.5 8 318.0 150 2.76 3.520 16.87 0 0 3 2
#> mpg cyl disp hp drat wt qsec vs am gear carb
sample_dt(mtcars,n=10)
#> mpg cyl disp hp drat wt qsec vs am gear carb
#> <num> <num> <num> <num> <num> <num> <num> <num> <num> <num> <num>
#> 1: 18.1 6 225.0 105 2.76 3.460 20.22 1 0 3 1
#> 2: 32.4 4 78.7 66 4.08 2.200 19.47 1 1 4 1
#> 3: 18.7 8 360.0 175 3.15 3.440 17.02 0 0 3 2
#> 4: 17.8 6 167.6 123 3.92 3.440 18.90 1 0 4 4
#> 5: 21.4 6 258.0 110 3.08 3.215 19.44 1 0 3 1
#> 6: 15.8 8 351.0 264 4.22 3.170 14.50 0 1 5 4
#> 7: 22.8 4 108.0 93 3.85 2.320 18.61 1 1 4 1
#> 8: 26.0 4 120.3 91 4.43 2.140 16.70 0 1 5 2
#> 9: 22.8 4 140.8 95 3.92 3.150 22.90 1 0 4 2
#> 10: 30.4 4 95.1 113 3.77 1.513 16.90 1 1 5 2
sample_dt(mtcars,prop = 0.1)
#> mpg cyl disp hp drat wt qsec vs am gear carb
#> <num> <num> <num> <num> <num> <num> <num> <num> <num> <num> <num>
#> 1: 19.2 6 167.6 123 3.92 3.440 18.30 1 0 4 4
#> 2: 13.3 8 350.0 245 3.73 3.840 15.41 0 0 3 4
#> 3: 21.5 4 120.1 97 3.70 2.465 20.01 1 0 3 1
# sample by group(s)
iris %>% sample_n_dt(2,by = "Species")
#> Species Sepal.Length Sepal.Width Petal.Length Petal.Width
#> <fctr> <num> <num> <num> <num>
#> 1: setosa 5.5 3.5 1.3 0.2
#> 2: setosa 5.5 4.2 1.4 0.2
#> 3: versicolor 6.0 2.2 4.0 1.0
#> 4: versicolor 5.4 3.0 4.5 1.5
#> 5: virginica 6.7 3.1 5.6 2.4
#> 6: virginica 7.3 2.9 6.3 1.8
iris %>% sample_frac_dt(.1,by = "Species")
#> Species Sepal.Length Sepal.Width Petal.Length Petal.Width
#> <fctr> <num> <num> <num> <num>
#> 1: setosa 5.5 4.2 1.4 0.2
#> 2: setosa 5.0 3.0 1.6 0.2
#> 3: setosa 5.0 3.3 1.4 0.2
#> 4: setosa 5.0 3.2 1.2 0.2
#> 5: setosa 4.9 3.1 1.5 0.1
#> 6: setosa 5.1 3.8 1.5 0.3
#> 7: setosa 5.0 3.4 1.5 0.2
#> 8: setosa 5.4 3.4 1.7 0.2
#> 9: setosa 5.2 3.5 1.5 0.2
#> 10: setosa 5.1 3.8 1.6 0.2
#> 11: setosa 5.7 3.8 1.7 0.3
#> 12: setosa 5.0 3.5 1.6 0.6
#> 13: setosa 4.6 3.1 1.5 0.2
#> 14: setosa 5.0 3.6 1.4 0.2
#> 15: setosa 5.1 3.4 1.5 0.2
#> 16: versicolor 5.5 2.6 4.4 1.2
#> 17: versicolor 6.4 2.9 4.3 1.3
#> 18: versicolor 5.6 2.9 3.6 1.3
#> 19: versicolor 6.9 3.1 4.9 1.5
#> 20: versicolor 6.4 3.2 4.5 1.5
#> 21: versicolor 6.2 2.9 4.3 1.3
#> 22: versicolor 5.6 2.5 3.9 1.1
#> 23: versicolor 6.7 3.1 4.4 1.4
#> 24: versicolor 6.5 2.8 4.6 1.5
#> 25: versicolor 5.7 2.6 3.5 1.0
#> 26: versicolor 5.1 2.5 3.0 1.1
#> 27: versicolor 5.0 2.3 3.3 1.0
#> 28: versicolor 6.0 2.2 4.0 1.0
#> 29: versicolor 6.1 2.8 4.0 1.3
#> 30: versicolor 6.7 3.1 4.7 1.5
#> 31: virginica 6.4 3.1 5.5 1.8
#> 32: virginica 6.3 3.4 5.6 2.4
#> 33: virginica 7.9 3.8 6.4 2.0
#> 34: virginica 5.6 2.8 4.9 2.0
#> 35: virginica 5.7 2.5 5.0 2.0
#> 36: virginica 7.2 3.6 6.1 2.5
#> 37: virginica 6.9 3.2 5.7 2.3
#> 38: virginica 6.4 2.8 5.6 2.2
#> 39: virginica 6.2 3.4 5.4 2.3
#> 40: virginica 6.8 3.2 5.9 2.3
#> 41: virginica 7.3 2.9 6.3 1.8
#> 42: virginica 4.9 2.5 4.5 1.7
#> 43: virginica 6.5 3.2 5.1 2.0
#> 44: virginica 6.5 3.0 5.8 2.2
#> 45: virginica 7.2 3.0 5.8 1.6
#> Species Sepal.Length Sepal.Width Petal.Length Petal.Width
mtcars %>% sample_n_dt(1,by = c("cyl","vs"))
#> cyl vs mpg disp hp drat wt qsec am gear carb
#> <num> <num> <num> <num> <num> <num> <num> <num> <num> <num> <num>
#> 1: 6 0 21.0 160.0 110 3.90 2.62 16.46 1 4 4
#> 2: 4 1 24.4 146.7 62 3.69 3.19 20.00 0 4 2
#> 3: 6 1 18.1 225.0 105 2.76 3.46 20.22 0 3 1
#> 4: 8 0 15.2 275.8 180 3.07 3.78 18.00 0 3 3
#> 5: 4 0 26.0 120.3 91 4.43 2.14 16.70 1 5 2