根據條件(包含特定字符串)對數據進行分組

波爾圖

我有一個類似的數據集:

年 | 身份證 | 類型
2000 1 O
2000 1 O
2000 1 O
2000 1 O
2000 1 R
2017 5 O
2017 5 O
2000 8 R
2000 8 O
2002 8 O

我想創建一個代碼,按年份和 ID 對數據進行分組(我想它會使用 Dplyr)但它需要有一個條件:如果在給定的年份中存在與 ID 關聯的任何類型 R,那麼我希望它選擇類型R。如果它只有O類型,那麼輸出一定是O。

示例:
年份 | 身份證 | 鍵入
2000 1個R
2017年5 O
2000 8 R
2002年8 O

謝謝大家

阿克倫

我們可以做一個arrange在邏輯向量(TRUE後自帶FALSE按字母順序排列)和slice分組後的第一行

library(dplyr)
df1 %>% 
   arrange(Year, ID, Type == 'O') %>%
   group_by(Year, ID) %>%
   slice_head(n = 1) %>%
   ungroup

-輸出

# A tibble: 4 × 3
   Year    ID Type 
  <int> <int> <chr>
1  2000     1 R    
2  2000     5 O    
3  2000     8 R    
4  2002     8 O    

或者在arrange使用distinct返回第一個非重複行

df1 %>%
    arrange(Year, ID, Type == 'O') %>%
    distinct(Year, ID, .keep_all = TRUE)

-輸出

 Year ID Type
1 2000  1    R
2 2000  5    O
3 2000  8    R
4 2002  8    O

數據

df1 <- structure(list(Year = c(2000L, 2000L, 2000L, 2000L, 2000L, 2000L, 
2000L, 2000L, 2000L, 2002L), ID = c(1L, 1L, 1L, 1L, 1L, 5L, 5L, 
8L, 8L, 8L), Type = c("O", "O", "O", "O", "R", "O", "O", "R", 
"O", "O")), class = "data.frame", row.names = c(NA, -10L))

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何根據字符串層次結構對 Pandas 數據框進行分組?

Angular/RXJS,如何根據特定字符串值對 Observable 對像數組進行排序?

使用分類字符串對熊貓數據框進行分組

如何根據特定函數對數組進行分組?

使用熊貓按條件對數據進行分組

PHP中根據兩個條件對多個關聯數組進行分組和排序

如何根據條件在 Python 中對數據幀進行下採樣

根據值在另一個字符串數組中的位置對對像數組進行排序

如何根據條件分組和計數?

根據數據框的條件格式添加字符串

如何根據字符串拆分列,清理數據,然後對其進行計算?

使用條件對數據框進行分區

根據pandas中的字典對數據框的行進行分組並對相應的分子求和

根據值聚合對行進行分組

可以根據創建時間對文件進行排序並存儲在字符串數組中嗎?

按特定鍵對嵌套數組數據進行分組

根據大小對數組javascript進行排序

根據字符串條件填充缺失值

從字符串中的數組中添加數據並對其進行排序

如何根據Vuejs中的Id對特定數組位置進行排序?

根據條件組合數據幀

按列值對數據進行分組

按特定列值對數據框進行分組

如何以特定方式對我的數據框進行分組和轉置?

根據特定條件刪除數據幀的特定行

根據行條件更新列數據

在 React 中根據多個條件過濾對像數組

根據日期和時間對python中的字符串進行排序

使用 Pandas,如何根據包含字符串元素列表中的字符串元素的所有值對錶格進行排序?