select()选择的列比我告诉的要多。为什么? -R

问题描述 投票:1回答:1

例如,当我使用select()中的dplyr

mtcars %>% select(., cyl, disp)

正确选择cyldisp。但是,当我在正在处理的数据框中执行此操作时(假设它是iris):

iris %>% select(., Sepal.Length, Sepal.Width)

即使我不告诉您选择Sepal.Length,它也会选择Sepal.WidthPetal.LengthPetal.Length。这非常令人沮丧,因为我无法在文档,stackoverflow或google中找到任何说明。

[最后,我想知道select()什么时候选择我不告诉它选择的列?有什么建议吗?

编辑-数据:

structure(list(codigo_estacion = 11545000L, institucion = "DGA", 
    fuente = "dga_web", nombre = "Rio Baker Bajo ÑAdis", altura = 45L, 
    latitud = -47.5, longitud = -72.9749984741211, codigo_cuenca = 115L, 
    nombre_sub_cuenca = "Rio Baker Entre Arriba Rio De La Colonia Y Desemb.", 
    cantidad_observaciones = 4736L, fecha = structure(15624, class = "Date"), 
    caudal = 692, gauge_id = 11545000L, gauge_name = "Rio Baker Bajo ÑAdis", 
    precip_promedio = 0.454545468091965, temp_max_promedio = 17.0166664123535, 
    estacion_ano = "Primavera", caudal_extremo = 0, temp_extremo = 0, 
    precip_extremo = 0), class = c("grouped_df", "tbl_df", "tbl", 
"data.frame"), row.names = c(NA, -1L), groups = structure(list(
    codigo_estacion = 11545000L, estacion_ano = "Primavera", 
    .rows = list(1L)), row.names = c(NA, -1L), class = c("tbl_df", 
"tbl", "data.frame"), .drop = TRUE))

我正在使用的代码:

df %>% dplyr::select(codigo_estacion, caudal_extremo)

但是它给列estacion_anocodigo_estacioncaudal_extremo

r select dplyr data-manipulation
1个回答
0
投票

您提供的数据是由变量estacion_ano分组的数据帧。在分组数据帧上使用select时,分组变量将自动添加到结果中。您可能想在使用ungroup之前先进行select

df %>% 
  dplyr::ungroup() %>% 
  dplyr::select(codigo_estacion, caudal_extremo)

# A tibble: 1 x 2
# codigo_estacion caudal_extremo
#           <int>          <dbl>
# 1      11545000              0
© www.soinside.com 2019 - 2024. All rights reserved.