R 重新调整起始目标数据的形状
我需要打开此数据帧:R 重新调整起始目标数据的形状,r,dplyr,reshape,R,Dplyr,Reshape,我需要打开此数据帧: df1使用baseR(这可能需要引入一个或多个空格)。还假设来回值是连续输入的 new_df<-cbind(df[seq(1,nrow(df), by=2),], df[seq(2,nrow(df), by=2),])[,-c(4,5)] names(new_df)<-c("A","B","AtoB","BtoA") new_df 一个选项是根据每行中的最小值在“A”和“B”之间创建一个标识符列,标签为“AtoB/BtoA”,然后通过为每行取min/m
df1使用base
R(这可能需要引入一个或多个空格)。还假设来回值是连续输入的
new_df<-cbind(df[seq(1,nrow(df), by=2),], df[seq(2,nrow(df), by=2),])[,-c(4,5)]
names(new_df)<-c("A","B","AtoB","BtoA")
new_df
一个选项是根据每行中的最小值在“A”和“B”之间创建一个标识符列,标签为“AtoB/BtoA”,然后通过为每行取min/max
(pmin/pmax
)和spread
将输出返回到“宽”格式来更改“A”、“B”中的值
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
请与dput分享示例数据
抱歉,我有点费劲,因为我在这里没有问太多问题。我用dput编辑了我的问题,这是你需要的吗?
new_df<-cbind(df[seq(1,nrow(df), by=2),], df[seq(2,nrow(df), by=2),])[,-c(4,5)]
names(new_df)<-c("A","B","AtoB","BtoA")
new_df
# A B AtoB BtoA
#1 1 2 50 30
#3 3 4 20 30
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