У меня есть сгруппированный фрейм данных из моего большого набора данных с ~ 800 столбцами и ~ 2,5 миллионами записей. Я пытаюсь создать столбцы средних строк только для 5-10 столбцов каждый, но, не знаю почему, я продолжаю получать NA
как средство для всех строк.
Вот что я попробовал:
clean_bmk <- clean_bmk %>%
rowwise() %>%
mutate(
BMK_Mean_Strategic = mean(!!strategic, na.rm = T),
BMK_Mean_DiffChange = mean(!!diffchange, na.rm = T),
BMK_Mean_Failure = mean(!!failure, na.rm = T),
BMK_Mean_Narrow = mean(!!narrow, na.rm = T),
BMK_R1_Performance = mean(!!performance_vars, na.rm=T),
BMK_R2_Promotion = mean(!!promote_vars, na.rm=T),
BMK_R3_Derail = mean(!!derail_vars, na.rm=T))
class(clean_bmk)
[1] "grouped_df" "tbl_df" "tbl" "data.frame"
Когда я делаю это, все мутированные столбцы имеют значение NA. Но работает следующее:
clean_bmk$Strategic_Mean <- rowMeans(clean_bmk[,strategic], na.rm=T)
не знаю, почему и как я могу сделать функцию такой, чтобы я мог только отправлять список переменных, который содержит имена столбцов и изменяет столбец в кадре данных?
например:
strategic <- c("column1", "column15", "column27")
и аналогично другим переменным, таким как diffchange
, failure
, et c.
Я пытался сделать dput(clean_bmk)
, чтобы поделиться данными с вами, но так как набор данных большой, я не смог его получить. Я предполагаю, потому что это grouped_df
, я не мог использовать [[
или sample()
набор данных.