r - 如何在 R 中使用 pivot_wider 填充 NA 值
问题描述
这是我的数据框:
df <- tibble(x = c('a','a','a','a','a','b','b','b'), y = 1:8)
我想要这个最终输出:
df_final <- tibble(x = c('a','a','a','a','a'), y = 1:5, x_1 = c('b','b','b',NA,NA), y_1 = c(6,7,8,NA,NA))
我怎样才能使用pivot_wider
函数来做到这一点?
解决方案
你所要求的不是一个旋转,试试这个。
library(dplyr)
library(purrr) # map_dfc
df %>%
split(., .$x) %>%
map_dfc(~ lapply(., `length<-`, max(table(df$x))))
# Warning: Outer names are only allowed for unnamed scalar atomic inputs
# New names:
# * x -> x...1
# * y -> y...2
# * x -> x...3
# * y -> y...4
# # A tibble: 5 x 4
# x...1 y...2 x...3 y...4
# <chr> <int> <chr> <int>
# 1 a 1 b 6
# 2 a 2 b 7
# 3 a 3 b 8
# 4 a 4 <NA> NA
# 5 a 5 <NA> NA
推荐阅读
- javascript - 转换为字符串的表长度属性不返回任何内容
- ruby-on-rails - ActiveRecord 关系合并如何工作?
- python - 同时(“同时”)获取 `min` 和 `idxmin`(或 `max` 和 `idxmax`)?
- ios - 无法调用 ViewController() 的方法
- javascript - D3JS: Animate a 2 arc donut
- python - 张量流预测循环
- ruby - 仅在购买 Stripe 时显示按钮
- python - Minimax解决方案不起作用
- groovy - 如何使用@ClosureParams 进行需要两个参数的闭包?
- powershell - 创建 Jenkins 作业,在文件中搜索字符串并使用文件和行号报告警告