例如,当我使用select()
中的dplyr
:
mtcars %>% select(., cyl, disp)
正确选择cyl
和disp
。但是,当我在正在处理的数据框中执行此操作时(假设它是iris
):
iris %>% select(., Sepal.Length, Sepal.Width)
即使我不告诉您选择Sepal.Length
,它也会选择Sepal.Width
,Petal.Length
和Petal.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_ano
,codigo_estacion
和caudal_extremo
。
您提供的数据是由变量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