У меня есть функция, которая принимает фрейм данных и столбец в этом фрейме. Я хочу использовать lapply (), чтобы применить свою функцию к каждому столбцу в кадре данных, но я не уверен, как это сделать. Я думаю, это должно выглядеть примерно так:
#dataframe is called kstarter
my_func(df, col) {
...
}
lapply(kstarter, arg1=kstarter, arg2=??)
Но я не могу заставить его работать. Как arg2 может ссылаться на каждый столбец, который повторяется? Я ценю вашу помощь!
Редактировать:
Функция, которую я хочу применить для использования:
get_col_info <- function(col, df) {
unique_vals <- df %>%
select(col) %>%
distinct()
num_u_vals <- nrow(unique_vals)
if (is.numeric(df[[col]])) {
return(list(
min = min(df[[col]]),
max = max(df[[col]]),
mean = mean(df[[col]])
))
} else if ((!is.numeric(df[[col]])) & num_u_vals < 10) {
return(list(
n_values = num_u_vals,
unique_values = unique_vals %>% pull()
))
} else if (!is.numeric(df[[col]]) & num_u_vals >= 10) {
return(list(
n_values = num_u_vals,
sample_values = sample(df[[col]], size=10)
))
}
}
get_col_info
должна принимать имя столбца и фрейм данных в качестве параметров. Я хочу создать список, который получает информацию col для каждого столбца в кадре данных, используя lapply, что-то вроде list <- lapply(kstarter, get_col_info(current_col, kstarter))
, но я не могу понять синтаксис. Пожалуйста, помогите!