我有一個這樣的資料框
Polygon_No shp Sp. area
2 4 T.a. 31429.
2 4 T.n. 0
2 6 B.a. 0
2 6 T.a. 15714.
我想用同一列中的值替換區域列中的 0
我的意思是如果 area == 0 & shp 單元格值匹配 (6&6) & Polygon_No (2&2) 用 15714 替換 0。
uj5u.com熱心網友回復:
我喜歡max和dplyr::group_by有dplyr::mutate:
df %>% group_by(Polygon_No, shp) %>%
mutate(area=max(area))
輸出:
Polygon_No shp Sp. area
<int> <int> <chr> <dbl>
1 2 4 T.a. 31429
2 2 4 T.n. 31429
3 2 6 B.a. 15714
4 2 6 T.a. 15714
uj5u.com熱心網友回復:
你可以試試
library(dplyr)
df %>%
group_by(Polygon_No, shp) %>%
mutate(area = ifelse(area>0, area, NA)) %>%
mutate(area = unique(area[!is.na(area)]))
Polygon_No shp Sp. area
<int> <int> <chr> <dbl>
1 2 4 T.a. 31429
2 2 4 T.n. 31429
3 2 6 B.a. 15714
4 2 6 T.a. 15714
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/354159.html
標籤:r
