У меня есть итоговый фрейм данных (из этого вопроса ):
lst <- lapply(1:ncol(mtcars), function(i){
x <- mtcars[[i]]
data.frame(
Variable_name = colnames(mtcars)[[i]],
sum_unique = NROW(unique(x)),
NA_count = sum(is.na(x)),
NA_percent = round(sum(is.na(x))/NROW(x),2))
})
do.call(rbind, lst)
Где я хочу добавить пять самых высоких и самых низких значений для каждого столбца:
lst <- lapply(1:ncol(mtcars), function(i){
x <- mtcars[[i]]
data.frame(
variable_name = colnames(mtcars)[[i]],
distinct = NROW(unique(x)),
NA_count = sum(is.na(x)),
NA_percent = round(sum(is.na(x))/NROW(x),2),
first_5 = paste0(sort(x, decreasing=TRUE)[1:5],";"),
last_5 = paste0(sort(x)[1:5],";")
)
})
do.call(rbind, lst)
Но он создает новую строку для каждого значения first_5
и last_5
. Почему так происходит? И как я могу это решить?