簡體   English   中英

當重復值出現在不同的列中時,合並來自同一列的不同行的值

[英]combine values from different rows of same column when repeat values occur in a different column

我有一個如下的數據框。 我在 R 工作。

地點 緯度 站點代碼
一個 12 34 a1
b 23 23 b3
c 34 23 c4
d
一個
c

我想要一個如下的數據框。 我想保留唯一的站點列表,但不會丟失每個站點的緯度和經度。 當 site = site 時,我想結合緯度和經度

地點 緯度 網站代碼
一個 12 34 a1
b 23 23 b3
c 34 23 c4
d

我們可以將na轉換為NA ,然后通過對 non_NA 元素進行orderslice第一行

library(dplyr)
df1 %>%
   na_if("na") %>%
   group_by(site) %>%
   mutate(across(everything(), ~ .x[order(is.na(.x))])) %>%
   slice_head(n = 1) %>%
   ungroup

-輸出

# A tibble: 4 × 4
  site  lat   long  site_code
  <chr> <chr> <chr> <chr>    
1 a     12    34    a1       
2 b     23    23    b3       
3 c     34    23    c4       
4 d     <NA>  <NA>  <NA>    

數據

df1 <- structure(list(site = c("a", "b", "c", "d", "a", "c"), lat = c("12", 
"23", "34", "na", "na", "na"), long = c("34", "23", "23", "na", 
"na", "na"), site_code = c("a1", "b3", "c4", "na", "na", "na"
)), class = "data.frame", row.names = c(NA, -6L))

暫無
暫無

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

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