[英]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 元素進行order
並slice
第一行
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.