看板 R_Language 關於我們 聯絡資訊
各位 我有一個日期向量,格式如下,想找出向量中出現不同日期的第一個位置 “20210801” “20210801” “20210806” “20210806” “20210806” “20210806” “20210921” “20210921” “20210921” “20210928” “20210929” 我想要 這些日期第一個出現的位置(如下) 日期 位置 “20210801”, 1 “20210806”, 3 “20210921”, 7 “20210928”, 10 “20210929”, 11 請問要如何一次性找出來 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 101.12.26.45 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1658277395.A.E31.html ※ 編輯: jezi1878 (101.12.26.45 臺灣), 07/20/2022 08:37:30 ※ 編輯: jezi1878 (101.12.26.45 臺灣), 07/20/2022 08:38:48 ※ 編輯: jezi1878 (101.12.26.45 臺灣), 07/20/2022 08:40:03
llssdog: shift一格相減,取大于0的位置如何? 07/20 10:52
hohiyan: 笨方法:轉成data.frame後,用unique(),rowname()為位置 07/20 11:02
hohiyan: https://pastebin.com/kieYqr3L 07/20 11:05
lycantrope: 如果資料沒有sort shift一格相減不一定會正確 07/20 11:59
lycantrope: 用dplyr就是aggregate+first或group_by+first 07/20 12:02
Gjerry: which(!duplicated(x)) 07/20 14:08
Gjerry: 這方法不論是否已經排序,都會回傳該值第一次出現的位置 07/20 14:13
jkchang: match(unique(x), x)) 07/20 16:54
hohiyan: 綜合以上,在保持vector而不轉成data.frame的狀況下: 07/20 21:30
hohiyan: cbind(unique(x), which(!duplicated(x)) 同時有值跟位置 07/20 21:31