[英]I get n/a in columns when using the pivot_wider function
當我執行以下代碼時:
data_ikea_wider <- data_ikea_longer %>%
pivot_wider(id_cols = c(Record_no
, Geography
, City
, Country
, City.Country
, Year)
, names_from = Category, values_from = Value)
這些列只有 n/a,如附加的打印屏幕所示。
我究竟做錯了什么? 謝謝!
從樞軸獲取NA
並不意外,這意味着並非所有 id 列都具有所有“列”。
例如,
dat <- data.frame(col1 = c(1,1,2), col2 = c('a', 'b', 'a'), val = 1:3)
dat
# col1 col2 val
# 1 1 a 1
# 2 1 b 2
# 3 2 a 3
如果我們想要保持col1
作為 id 並將col2
值轉換為新列,那么很明顯我們最終會得到兩行(ida 1
和2
)和兩個新列( a
和b
)替換col2
和val
。 不幸的是,由於我們只有三行,因此 2 行 2 列 = 4 個單元格不會被 3 個值完全填充,因此其中一個將是NA
:
pivot_wider(dat, col1, names_from = col2, values_from = val)
# # A tibble: 2 x 3
# col1 a b
# <dbl> <int> <int>
# 1 1 1 2
# 2 2 3 NA
如果您看到這一點並感到驚訝,認為您確實擁有數據......那么您應該檢查您的數據導入和過濾,以確保您沒有無意中刪除它(或者最初沒有提供)。
我們可以使用dcast
的data.table
library(data.table)
setDT(dat)[, col1 ~ col2, value.var = 'val')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.