R 如何将不同的变量循环到同一个命令

R 如何将不同的变量循环到同一个命令,r,dataframe,summarize,R,Dataframe,Summarize,我试图将不同的变量循环到同一个命令中: data_aliki %>% group_by(indicator) %>% summarise( total_indicator = n(), yes_knocked1 = sum(knocked1==1, na.rm = TRUE) ) 下面是我要循环的变量和值的列表 behavior_list <- c("knocked1", "questions1", ...) answer_list <-

我试图将不同的变量循环到同一个命令中:

data_aliki %>% 
  group_by(indicator) %>%
  summarise(
    total_indicator = n(),
    yes_knocked1 = sum(knocked1==1, na.rm = TRUE)
  )
下面是我要循环的变量和值的列表

behavior_list <- c("knocked1", "questions1", ...)
answer_list <- c(0, 1)
answer_label_list <- c("Yes", "No")
我正在试着循环

yes_knocked1 = sum(knocked1==1, na.rm = TRUE) 
no_knocked1 = sum(knocked1==0, na.rm = TRUE)
yes_questions1 = sum(questions1==1, na.rm = TRUE) 
no_questions1 = sum(questions1==0, na.rm = TRUE) 

有没有比复制粘贴更简单的方法?

您没有提供可复制的示例,因此我将说明如何在
dplyr
中为
mtcars
数据集实现您想要的:

  mtcars %>% group_by(cyl) %>%
  summarize_at(c("mpg","hp"), list("lt15" = ~sum(. < 15, na.rm = TRUE),
                              "lt18" = ~sum(. < 18, na.rm = TRUE)))

@陶雪婷很高兴它奏效了。如果你喜欢我的答案,请考虑投票或接受。
cyl mpg_lt15 hp_lt15 mpg_lt18 hp_lt18
  <dbl>    <int>   <int>    <int>   <int>
1     4        0       0        0       0
2     6        0       0        1       0
3     8        5       0       12       0
data_aliki %>% 
  group_by(indicator) %>%
  summarize_at(c("knocked1","questions1"),
               list("yes" = ~sum(. == 1, na.rm = TRUE),
                     "no" = ~sum(. == 0, na.rm = TRUE))