[英]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.