当使用filter((函数删除列"中缺少值的行时,我得到以下错误消息;medecin":
"Error in `filter()`:
! Can't transform a data frame with duplicate names.
Run `rlang::last_error()` to see where the error occurred."
这是我的代码:
PG_21 <- pg_21 %>%
filter(medecin != "")
这是我的数据集的标题:
structure(list(c("9", "9", "9", "1", "1", "1"), c("Fictifs",
"Fictifs", "Fictifs", "Hospitalisé", "Hospitalisé", "Hospitalisé"
), c(NA, "Chir Vis", "Chir Vis", NA, "Pneumo", "Pneumo"), c(NA,
"CHIRURGIE GENERALE ET VISCERALE", "CHIRURGIE GENERALE ET VISCERALE",
NA, "PNEUMOLOGIE", "PNEUMOLOGIE"), c(NA, NA, "AGUI01", NA, NA,
"CHEH00"), c("", "", "ELIZABETH", "", "", "JACQUES"
), c("0", "0", "0", "10058", "2", "2"), c("0", "0", "0", "8272",
"0", "0"), c("0", "0", "0", "7866", "0", "0"), c("0", "0", "0",
"-406", "0", "0"), c("0", "0", "0", "16706935.369999999", "733.93",
"733.93"), c("0", "0", "0", "14774325.630000001", "0", "0"),
c("0", "0", "0", "14948147.18", "0", "0"), c("0", "0", "0",
"173821.55", "0", "0"), c("0", "0", "0", "3.4582126809785318",
"1", "1"), c("0", "0", "0", "3.5219766877124816", "0", "0"
), c("0", "0", "0", "3.2538019169329071", "0", "0"), c("0",
"0", "0", "-0.26817477077957452", "0", "0")), names = c("code_1",
"type_de_sejour", "code_2", "specialite", "code_3", "medecin",
"sejours_N2", "sejours_N1", "sejours_N", "ecart", "CA_N2", "CA_N1",
"CA_N", "ecart", "DMS_hosp_N2", "DMS_hosp_N1", "DMS_hosp_N",
NA), row.names = c(NA, -6L), class = c("tbl_df", "tbl", "data.frame"
))
我们可以使用janitor
包中的clean_names
函数:
library(janitor)
library(dplyr)
df %>%
clean_names() %>%
filter(medecin != "")
code_1 type_de_sejour code_2 specialite code_3 medecin sejours_n2 sejours_n1 sejours_n ecart ca_n2 ca_n1 ca_n ecart_2 dms_hosp_n2 dms_hosp_n1 dms_hosp_n na
<chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr>
1 9 Fictifs Chir Vis CHIRURGIE GENERALE ~ AGUI01 ELIZAB~ 0 0 0 0 0 0 0 0 0 0 0 0
2 1 Hospitalisé Pneumo PNEUMOLOGIE CHEH00 JACQUES 2 0 0 0 733.~ 0 0 0 1 0 0 0