提问人:Sri Sreshtan 提问时间:6/29/2020 更新时间:6/29/2020 访问量:74
如何自动将列的值填充到新的数据框中?
How to automatically populate the values of a column into a new data frame?
问:
这是一种通常使用 Microsoft Excel 解决的问题。由于我不熟悉 VBA 和宏,因此我需要借助 .R
数据框如下所示。
df <- data.frame(player_no = c(1,2,3,4,5,6), player = c("Ram", "Shyam", "Jordan", "Chris", "Salim", "Salman"), sold_to = c("Team_1", "Team_2", "Team_3", "Team_2", "Team_3", "Team_1"))
现在,我希望创建一个新的数据框,其中player_no和球员的值会自动填充到各自的球队中。
预期的图形表示如下所示:
预期输出如下
# Team 1 Team 2 Team 3
# Sno player_no player Sno player_no player Sno player_no player
# 1 1 Ram 1 2 Shyam 1 3 Jordan
# 2 6 Salman 2 4 Chris 2 5 Salim
一旦达到预期的输出,是否可以将输出传输回模拟问题中提到的图形表示的 excel 文件(使用包)?writexl
答:
1赞
Martin Gal
6/29/2020
#1
您可以使用 和 :dplyr
tidyr
df %>%
pivot_wider(names_from="sold_to",
names_glue="{sold_to}_{.value}",
values_from=c("player_no", "player"),
values_fn=list
) %>%
unnest(everything()) %>%
select(Team_1_player_no, Team_1_player,
Team_2_player_no, Team_2_player,
Team_3_player_no, Team_3_player)
它返回的不完全是您想要的输出,但它非常相似:
# A tibble: 2 x 6
Team_1_player_no Team_1_player Team_2_player_no Team_2_player Team_3_player_no Team_3_player
<dbl> <fct> <dbl> <fct> <dbl> <fct>
1 1 Ram 2 Shyam 3 Jordan
2 6 Salman 4 Chris 5 Salim
评论