У меня есть фрейм данных с круглыми 100 столбцами от var1 до var100.
Группирующая переменная — это логическая переменная с двумя возможными значениями: ИСТИНА и ЛОЖЬ.
Что я ищу, так это вычислить процент каждой переменной от 1 до 100 переменных с помощью группирующей переменной, называемой Group
, которая является логической переменной только с двумя значениями ИСТИНА и ЛОЖЬ.
Образец
Test_dataframe <- data.frame(Group=c(TRUE,TRUE,TRUE,FALSE,FALSE,FALSE),
var1=c(1,0,1,0,1,0),
var2=c(0,1,0,1,0,1),
var3=c(0,0,0,1,0,1))
Ожидаемый результат:
Result_dataframe <- data.frame(Group=c(TRUE,FALSE),
+ var1=c(0.66,0.33),
+ var2=c(0.33,0.66),
+ var3=c(0,0.66))
Что я пробовал до сих пор.
Result_dataframe <-Test_dataframe %>% group_by(Group) %>% summarise_each(funs(sum))
Мы можем использовать mean
вместо sum
library(dplyr)
Test_dataframe %>%
group_by(Group) %>%
summarise(across(everything(), mean), .groups = "drop")
-выход
# A tibble: 2 × 4
Group var1 var2 var3
<lgl> <dbl> <dbl> <dbl>
1 FALSE 0.333 0.667 0.667
2 TRUE 0.667 0.333 0