簡體   English   中英

根據條件計算組內均值 dplyr

[英]Compute mean within group based on condition dplyr

我正在對標記為site_vote_ID的項目列表進行地理配准。 這些是位於城市內的投票站。 我遵循三種不同的策略來定位每個投票站。 每個策略都給我一個緯度: lat_ad_osmlat_adp_osmlat_ocha 對於那些我找不到任何緯度的site_vote_ID ,我想根據位於同一城市的所有其他投票站的平均緯度來計算緯度,而我沒有缺少緯度。

我只想在城市中這樣做。 我通過以下 dataframe 識別城市:

structure(list(clcr = c("MBUJI-MAYI VILLE", "LUBUMBASHI VILLE", 
"LIKASI VILLE", "KISANGANI VILLE", "GOMA VILLE", "MBANDAKA VILLE", 
"MATADI VILLE", "KOLWEZI VILLE", "TSHIKAPA VILLE", "MWENE-DITU VILLE", 
"BENI VILLE", "KIKWIT VILLE", "BOMA VILLE", "KANANGA VILLE", 
"KINDU VILLE", "BUNIA VILLE", "BANDUNDU VILLE", "GBADOLITE VILLE", 
"ZONGO VILLE", "BUTEMBO VILLE", "BUKAVU VILLE", "ISIRO VILLE"
)), row.names = c(NA, -22L), class = c("tbl_df", "tbl", "data.frame"
))

dplyr術語中,它應該看起來像這樣(不起作用,因為Error in grepl(ville$clcr): argument "x" is missing, with no default ):

final <- cenielecdf_ad2osm %>%
  group_by(clcr) %>%
  mutate(av_lat = ifelse(clcr == grepl(ville$clcr), mean(!is.na(c("lat_ad_osm", "lat_adp_osm", "lat_ocha"), NA))))

有人能幫我一下嗎?

structure(list(site_vote_ID = c("810016", "710032", "710031", 
"710098", "710076", "710061", "810027", "810019", "810034", "810053", 
"810024", "810036", "710037", "810082", "710053", "710056", "810012", 
"810051", "810017", "810007", "710015", "810052", "810023", "710060", 
"810066", "810038", "710026", "540002", "540001", "540044", "810062", 
"810083", "710088", "710043", "810026", "710044", "810004", "810008", 
"710013", "810050", "810068", "810010", "810001", "710063", "810085", 
"810002", "540046", "710033", "540049", "810006", "710001", "810069", 
"810025", "810011", "810075", "810055", "710058", "540003", "810039", 
"810076", "810081", "710051", "810013", "810064", "810044", "710101", 
"610011", "810015", "710048", "710069", "710022", "810079", "810067", 
"810032", "810045", "810030", "710074", "540004", "810029", "810065", 
"810043", "810077", "810047", "810070", "810078", "810040", "810074", 
"710086", "810031", "810035", "810022", "810084", "810021", "410010", 
"810003", "810014", "810048", "710057", "810046", "710030"), 
    clcr = c("MBUJI-MAYI VILLE", "LUBUMBASHI VILLE", "LUBUMBASHI VILLE", 
    "LIKASI VILLE", "LUBUMBASHI VILLE", "LUBUMBASHI VILLE", "MBUJI-MAYI VILLE", 
    "MBUJI-MAYI VILLE", "MBUJI-MAYI VILLE", "MBUJI-MAYI VILLE", 
    "MBUJI-MAYI VILLE", "MBUJI-MAYI VILLE", "LUBUMBASHI VILLE", 
    "MBUJI-MAYI VILLE", "LUBUMBASHI VILLE", "LUBUMBASHI VILLE", 
    "MBUJI-MAYI VILLE", "MBUJI-MAYI VILLE", "MBUJI-MAYI VILLE", 
    "MBUJI-MAYI VILLE", "LUBUMBASHI VILLE", "MBUJI-MAYI VILLE", 
    "MBUJI-MAYI VILLE", "LUBUMBASHI VILLE", "MBUJI-MAYI VILLE", 
    "MBUJI-MAYI VILLE", "LUBUMBASHI VILLE", "KISANGANI VILLE", 
    "KISANGANI VILLE", "KISANGANI VILLE", "MBUJI-MAYI VILLE", 
    "MBUJI-MAYI VILLE", "LUBUMBASHI VILLE", "LUBUMBASHI VILLE", 
    "MBUJI-MAYI VILLE", "LUBUMBASHI VILLE", "MBUJI-MAYI VILLE", 
    "MBUJI-MAYI VILLE", "LUBUMBASHI VILLE", "MBUJI-MAYI VILLE", 
    "MBUJI-MAYI VILLE", "MBUJI-MAYI VILLE", "MBUJI-MAYI VILLE", 
    "LUBUMBASHI VILLE", "MBUJI-MAYI VILLE", "MBUJI-MAYI VILLE", 
    "KISANGANI VILLE", "LUBUMBASHI VILLE", "KISANGANI VILLE", 
    "MBUJI-MAYI VILLE", "LUBUMBASHI VILLE", "MBUJI-MAYI VILLE", 
    "MBUJI-MAYI VILLE", "MBUJI-MAYI VILLE", "MBUJI-MAYI VILLE", 
    "MBUJI-MAYI VILLE", "LUBUMBASHI VILLE", "KISANGANI VILLE", 
    "MBUJI-MAYI VILLE", "MBUJI-MAYI VILLE", "MBUJI-MAYI VILLE", 
    "LUBUMBASHI VILLE", "MBUJI-MAYI VILLE", "MBUJI-MAYI VILLE", 
    "MBUJI-MAYI VILLE", "LIKASI VILLE", "GOMA VILLE", "MBUJI-MAYI VILLE", 
    "LUBUMBASHI VILLE", "LUBUMBASHI VILLE", "LUBUMBASHI VILLE", 
    "MBUJI-MAYI VILLE", "MBUJI-MAYI VILLE", "MBUJI-MAYI VILLE", 
    "MBUJI-MAYI VILLE", "MBUJI-MAYI VILLE", "LUBUMBASHI VILLE", 
    "KISANGANI VILLE", "MBUJI-MAYI VILLE", "MBUJI-MAYI VILLE", 
    "MBUJI-MAYI VILLE", "MBUJI-MAYI VILLE", "MBUJI-MAYI VILLE", 
    "MBUJI-MAYI VILLE", "MBUJI-MAYI VILLE", "MBUJI-MAYI VILLE", 
    "MBUJI-MAYI VILLE", "LUBUMBASHI VILLE", "MBUJI-MAYI VILLE", 
    "MBUJI-MAYI VILLE", "MBUJI-MAYI VILLE", "MBUJI-MAYI VILLE", 
    "MBUJI-MAYI VILLE", "MBANDAKA VILLE", "MBUJI-MAYI VILLE", 
    "MBUJI-MAYI VILLE", "MBUJI-MAYI VILLE", "LUBUMBASHI VILLE", 
    "MBUJI-MAYI VILLE", "LUBUMBASHI VILLE"), lat_ad_osm = c(NA, 
    -11.7062452, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
    NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, -11.606679, NA, NA, 
    NA, NA, NA, NA, NA, NA, NA, NA, NA, -11.691544, -6.1022365, 
    -6.1172396, NA, NA, NA, NA, NA, NA, -6.1027773, NA, NA, NA, 
    NA, -6.0905462, -11.678251, NA, NA, NA, NA, NA, -11.641348, 
    NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, -11.7055366, 
    -11.6457268, -11.6125155, NA, NA, NA, NA, -6.1231689, -11.6276079, 
    NA, NA, NA, NA, NA, NA, NA, NA, -6.1231689, NA, -11.6322452, 
    -6.1487845, -6.1231689, -6.1348244, NA, -6.1348244, NA, NA, 
    NA, NA, NA, NA, NA), lat_adp_osm = c(NA, 27.4651623, NA, 
    NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 27.5409463, 27.5409463, 
    NA, NA, 23.6208335, NA, NA, NA, NA, 27.4643049, NA, NA, NA, 
    NA, NA, NA, 23.5780294, NA, NA, NA, 23.5792109, 27.4727149, 
    23.5792109, 23.5723995, NA, NA, NA, NA, NA, NA, 23.6175974, 
    NA, NA, NA, NA, 23.5693096, 27.4723585, 23.6082458, NA, NA, 
    NA, NA, 27.4847847, NA, NA, NA, NA, 27.4977762, NA, NA, NA, 
    NA, NA, NA, 27.4844973, 27.5232799, 27.5010386, NA, NA, NA, 
    NA, 23.6175974, 27.5398971, NA, NA, NA, NA, NA, NA, NA, NA, 
    23.6175974, NA, 27.5447544, 23.6208335, 23.6175974, 23.6100466, 
    NA, 23.6100466, NA, NA, NA, NA, NA, NA, NA), lat_ocha = c(NA_real_, 
    NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, 
    NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, 
    NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, 
    NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, 
    NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, 
    NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, 
    NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, 
    NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, 
    NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, 
    NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, 
    NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, 
    NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, 
    NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, 
    NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, 
    NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, 
    NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, 
    NA_real_, NA_real_, NA_real_)), row.names = c(NA, -100L), class = c("tbl_df", 
"tbl", "data.frame"))

grepl需要一個模式和一個值向量來檢查。 您只在grepl(ville$clcr)中提供了一個模式。 請參閱?grepl以獲得更多幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM