gpt4 book ai didi

r - 变量名顺序pivot_wider

转载 作者:行者123 更新时间:2023-12-03 16:53:24 26 4
gpt4 key购买 nike

您如何才能更改pivot_wider中变量名称的顺序,使其在values_from之前具有names_from?

使用us_rent_income数据集:

df <- us_rent_income %>% 
pivot_wider(names_from = NAME,
values_from = c(estimate, moe))

这样得出的结果类似于'estimate_Alabama',我们如何更改变量的顺序,使其为'Alabama_estimate'?

最佳答案

编辑:tidyr 1.1.0开始,可以使用names_glue参数控制变量名的顺序:

us_rent_income %>%
pivot_wider(
names_from = NAME,
values_from = c(estimate, moe),
names_glue = "{NAME}_{.value}"
)
旧答案: pivot_wider()的文档指出:“如果 values_from包含多个值,则该值将被添加到输出列的前面”,因此似乎没有任何方法可以将其作为整形的一部分进行控制。相反,它必须在事后完成。
假设数据集中没有其他包含 _的变量名(如果这样,则可以使用 names_sep参数将分隔符更改为唯一的名称),一种方法是:
library(tidyr)

df <- us_rent_income %>%
pivot_wider(names_from = NAME,
values_from = c(estimate, moe)) %>%
setNames(nm = sub("(.*)_(.*)", "\\2_\\1", names(.)))

head(names(df))

[1] "GEOID" "variable" "Alabama_estimate" "Alaska_estimate" "Arizona_estimate" "Arkansas_estimate"

关于r - 变量名顺序pivot_wider,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58182388/

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