#r #printing #tidyverse #tibble
Вопрос:
Я снова пишу пример кода в конце «Advanced R:глава 1″следующим образом ##########################################################
rm(list = ls())
create_random_df <- function (ncol, nrow) {
df <- as.data.frame(matrix (sample.int(n = ncol*nrow, replace = T), ncol = ncol))
attr(df, 'names') <- 1:ncol
df
}
subtract_df <- function (df, medians) {
for (i in seq_along(df)) {
df[[i]] <- df[[i]] - medians[i]
}
invisible(df)
}
subtract_ls <- function (df, medians) {
ll <- as.list(df)
for (i in seq_along(ll)) {
ll[[i]] <- ll[[i]] - medians[i]
}
invisible(list2DF(x = ll))
}
bechmark_median <- function(ncol, nrow) {
dd.df <- create_random_df(ncol, nrow)
md <- sapply(dd.df, median)
bench::mark(
"data frame" = subtract_df(dd.df, md),
"list" = subtract_ls(dd.df, md),
time_unit = "ms",
memory = F,
check = F,
filter_gc = F,
)
}
res.rc <- bench::press(
xcol = c(5, 10, 15),
xrow = c(1000, 2000, 3000, 4000),
{
bechmark_median(xcol, xrow)
}
)
##############################################
когда я хочу показать результат (например) в этих двух случаях, количество строк разное!!
res.rc[,2:6]
res.rc[,1:6]
Я предполагаю, что первая колонка вызывает эту проблему.