У меня есть сгруппированный фрейм данных из моего большого набора данных с ~ 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
и т. д.
Я пытался сделать dput(clean_bmk)
, чтобы поделиться с вами данными, но поскольку набор данных большой, я не смог его получить. Я предполагаю, что из-за того, что это grouped_df
, я не мог использовать [[
и sample()
набор данных.
rowMeans
- person akrun   schedule 28.02.2020