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