при условии, что у вас есть data.frame
(я буду играть с mtcars
) и вектор результатов (c(1,2)
), который вы ищете.Следующая смесь lapply
будет работать с пакетами tibble
и tidyr
.
responses = c(1,2)
#create a named list
exampleOutput <- lapply(setNames(names(mtcars),names(mtcars)), function(x){
lapply(setNames(responses, paste0('response_', responses)),function(y){
mtcars[mtcars[x] == y, x] %>%
length
}) %>%
#convert named list into a tibble/dataframe
tibble::as.tibble()
}) %>%
#convert list into a tibble/dataframe
tibble::enframe() %>%
#open up the nested data
tidyr::unnest()
вы получите что-то вроде этого
name response_1 response_2
<chr> <int> <int>
1 mpg 0 0
2 cyl 0 0
3 disp 0 0
4 hp 0 0
5 drat 0 0
6 wt 0 0
7 qsec 0 0
8 vs 14 0
9 am 13 0
10 gear 0 0
11 carb 7 10