gpt4 book ai didi

r - 没有值列时的 pivot_wider

转载 作者:行者123 更新时间:2023-12-02 11:26:04 29 4
gpt4 key购买 nike

我正在尝试将数据集从长到宽 reshape 。以下代码有效,但我很好奇是否有办法不提供值列并仍然使用 pivot_wider .在以下示例中,我必须创建一个临时列“val”才能使用 pivot_wider ,但是没有它我可以做到吗?

a <- data.frame(name = c("sam", "rob", "tom"),
type = c("a", "b", "c"))
a
name type
1 sam a
2 rob b
3 tom c

我想将其转换为以下内容。
name      a     b     c
1 sam 1 0 0
2 rob 0 1 0
3 tom 0 0 1

这可以通过以下代码完成,但我可以在不创建“val”列(并且仍然使用 tidyverse 语言)的情况下做到这一点吗?
a <- data.frame(name = c("sam", "rob", "tom"),
type = c("a", "b", "c"),
val = rep(1, 3)) %>%
pivot_wider(names_from = type, values_from = val, values_fill = list(val = 0))

最佳答案

您可以使用 values_fn赋值 1 和 values_fill 的参数分配 0:

library(tidyr)

pivot_wider(a, names_from = type, values_from = type, values_fn = list(type = ~1), values_fill = list(type = 0))

# A tibble: 3 x 4
name a b c
<fct> <dbl> <dbl> <dbl>
1 sam 1 0 0
2 rob 0 1 0
3 tom 0 0 1

关于r - 没有值列时的 pivot_wider,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60535849/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com