Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用dplyr::按顺序汇总时出错_R_For Loop_Dplyr_Rlang_Summarize - Fatal编程技术网

使用dplyr::按顺序汇总时出错

使用dplyr::按顺序汇总时出错,r,for-loop,dplyr,rlang,summarize,R,For Loop,Dplyr,Rlang,Summarize,这里的一位利他成员帮助我编写了以下代码,使用for循环和dplyr::summary生成变量。正如预期的那样,此代码运行良好 library(nycflights13) flights <- nycflights13::flights %>% select(carrier,distance,hour) by_carrier <- NULL for ( i in c("distance", "hour") { df <

这里的一位利他成员帮助我编写了以下代码,使用for循环和
dplyr::summary
生成变量。正如预期的那样,此代码运行良好

library(nycflights13)

flights <- nycflights13::flights %>%
  select(carrier,distance,hour)

by_carrier <- NULL
for ( i in c("distance", "hour") {   
  df <- 
    flights %>%
    dplyr::group_by(carrier) %>%
    dplyr::summarize(!!as.name(i) := sum(!!as.name(i) ))
  by_carrier <- bind_cols(by_carrier,df)
}

我错过了什么?提前感谢。

因为您正在使用
seq_
i
是1,2不是数据中列的名称。将
for
循环更改为
for(i在var\u利息中)
或在循环内使用
var\u利息[i]

library(dplyr)

by_carrier <- NULL

var_interest <- c("distance", "hour")
for (i in var_interest) {   
  df <- 
    flights %>%
    dplyr::group_by(carrier) %>%
    dplyr::summarize(!!as.name(i) := sum(!!as.name(i) ))
  by_carrier <- bind_cols(by_carrier,df)
}

由于您使用的是
seq_
i
是1,2不是数据中列的名称。将
for
循环更改为
for(i在var\u利息中)
或在循环内使用
var\u利息[i]

library(dplyr)

by_carrier <- NULL

var_interest <- c("distance", "hour")
for (i in var_interest) {   
  df <- 
    flights %>%
    dplyr::group_by(carrier) %>%
    dplyr::summarize(!!as.name(i) := sum(!!as.name(i) ))
  by_carrier <- bind_cols(by_carrier,df)
}
library(dplyr)

by_carrier <- NULL

var_interest <- c("distance", "hour")
for (i in var_interest) {   
  df <- 
    flights %>%
    dplyr::group_by(carrier) %>%
    dplyr::summarize(!!as.name(i) := sum(!!as.name(i) ))
  by_carrier <- bind_cols(by_carrier,df)
}
flights %>%
  group_by(carrier) %>%
  summarise(across(all_of(var_interest), sum))