簡體   English   中英

{tidyr} 傳播問題 function 丟棄行

[英]Problem with {tidyr} spread function dropping rows

嘗試創建虛擬變量時,會出現由於某種原因合並行的問題。 這導致一行與兩組相關聯,因此不是虛擬變量。 以下代碼重現了該問題。

df = data.frame(group = c(4, 2, 3, 3, 4, 4), time = c(0.1, 0.2, 0.3, 0.3, 0.3, 0.4), age = c(65, 86, 49, 71, 71, 76), year = c(72, 74, 72, 76, 76, 77), death = c(1, 1, 1, 1, 1, 1))

df %>% mutate(i=1) %>% spread(group, i, fill=0)

運行代碼后,您可以看到有一行被合並,導致一個主題同時位於兩個組中。 這是代碼錯誤還是 function 錯誤?

我們可以使用row_number()創建一列,因為有一些重復的行

library(dplyr)
library(tidyr)
df %>% 
    mutate(i=1, rn = row_number()) %>% 
    spread(group, i, fill=0) %>%
    select(-rn)

或使用pivot_wider

df %>%
   mutate(rn = row_number(), i = 1) %>%
   pivot_wider(names_from = group, values_from = i, values_fill = list(i = 0))

暫無
暫無

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

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