gpt4 book ai didi

reshape 原始目标数据

转载 作者:行者123 更新时间:2023-12-01 13:36:43 25 4
gpt4 key购买 nike

我需要转动这个数据框:

enter image description here

df1 <- data.frame(A = c(1,2,3), B = c(2,1,4), Flow = c(50,30,20))

像这样的数据框:

enter image description here

df2 <- data.frame(A = c(1,3), B = c(3,4), AtoB = c(50,20), BtoA = c(20, NA))

我正在尝试用 dplyr reshape 它。是否有现有的功能或方法可以做到这一点?

最佳答案

一个选项是根据每行中的最小值在“A”和“B”之间创建一个带有标签“AtoB/BtoA”的标识符列,然后通过以下方式更改“A”、“B”中的值:每行的 min/max (pmin/pmax) 并将输出扩展回“宽”格式

library(dplyr)
library(tidyr)
df1 %>%
mutate(grpIdent = case_when(A == pmin(A, B) ~ 'AtoB', TRUE ~ 'BtoA'),
A1= pmin(A, B), B1 = pmax(A, B)) %>%
select(A = A1, B = B1, grpIdent, Flow) %>%
spread(grpIdent, Flow)
# A B AtoB BtoA
#1 1 2 50 30
#2 3 4 20 NA

关于 reshape 原始目标数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55297738/

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