假设我有一个空tibble my_tbl
(0行),但其列类型中给出。例如:
library(tibble)
library(lubridate)
my_tbl <- tibble(
x = integer(),
y = character(),
w = ymd(),
z = list()
)
如何随机填充my_tbl
与n
行(假设n=10
示范的目的)?
如果可能的话我找了一个简单的tidyverse
一段代码(但基础R会就好了太)。
据我所知,我的要求并不完全指定如何填补这些行,但东西是不能简单地回收价值为每列应该已经足够了。我想有随机生成tibbles
定的已知列类型的简单方法。最终的目标是上运行这些生成的tibbles
测试。
你可以编写调用sample
随机生成每个列的函数:
library(tibble)
library(purrr)
get_random_tbl <- function(tbl, n){
classes <- map_chr(tbl, class)
map_dfc(
classes,
~{
switch(
.x,
integer = sample(1:100, n, replace = TRUE),
character = sample(LETTERS, n, replace = TRUE),
Date = sample(seq(as.Date('1999/01/01'), as.Date('2019/01/01'), by = "day"), n, replace = TRUE),
list = sample(c(list("x"), list(1)), n, replace = TRUE),
stop()
)
}
)
}
get_random_tbl(my_tbl, 3)
# A tibble: 3 x 4
# x y w z
# <int> <chr> <date> <list>
#1 18 V 2015-11-30 <dbl [1]>
#2 34 D 2004-05-26 <chr [1]>
#3 76 B 2007-03-16 <chr [1]>