условии, что исходные данные записаны не вектором, а одной строкой через ";"?
n_elem <- 100000
ll_names <- stri_rand_strings(n_elem * 10, 10, "[a-z]") %>%
sample(size = n_elem, replace = FALSE) %>%
sort()
ll <- stri_rand_strings(n_elem,100,"[a-l;]") %>% set_names(ll_names)
baseline<-function(i_string)
{
i_list<-strsplit(i_string,";",T)
data.frame(
id = rep(names(i_list), times = lengths(i_list)),
var = unlist(i_list, use.names = FALSE)
)
}
bench::mark(baseline(ll))
а о каких показателях речь идет? тут вроде все маленькое и почти идентичное library(stringi) ll <- 100000 %>% stri_rand_strings(100, "[a-l;]") bench::mark( strsplit(ll, ";", T), stri_split_fixed(ll, ";"), check = FALSE )
Обсуждают сегодня