繁体   English   中英

使用 pivot_wider 函数时,列中出现 n/a

[英]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 12 )和两个新列( ab )替换col2val 不幸的是,由于我们只有三行,因此 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

如果您看到这一点并感到惊讶,认为您确实拥有数据......那么您应该检查您的数据导入和过滤,以确保您没有无意中删除它(或者最初没有提供)。

我们可以使用dcastdata.table

library(data.table)
setDT(dat)[, col1 ~ col2, value.var = 'val')

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM