合并基于列的X数据帧和基于行的Y数据帧字符串(R)

合并基于列的X数据帧和基于行的Y数据帧字符串(R),r,merge,R,Merge,我想合并两个数据帧(dat1和dat2),比较列字符串和行字符串 dat1: NE001 NE002 NE003 -1.2 3 2 2 -1.2 3 3 2 -1.5 dat2: NE_id value NE001 2 NE002 -0.4 NE003 3 我的预期产出 NE001 NE001 NE002 NE002 NE003 NE003 -1.2 2 3 -0.4

我想合并两个数据帧(
dat1
dat2
),比较列字符串和行字符串

dat1

NE001  NE002  NE003
-1.2     3      2
 2     -1.2     3
 3      2     -1.5
dat2

NE_id   value
NE001    2
NE002   -0.4
NE003    3
我的预期产出

NE001  NE001  NE002   NE002   NE003  NE003
-1.2     2      3     -0.4      2     3
 2       2    -1.2    -0.4      3     3
 3       2      2     -0.4    -1.5    3

这可能不是很优雅,但应该可以:

 for(i in 1:dim(dat1)[1])
{
    dat2bis[,i]<-dat2bis[,1]
}

dat3<-cbind(dat1,dat2bis)
dat3<-dat3[,order(colnames(dat3))]
for(i in 1:dim(dat1)[1])
{

dat2bis[,i]这可能不是很优雅,但应该可以:

 for(i in 1:dim(dat1)[1])
{
    dat2bis[,i]<-dat2bis[,1]
}

dat3<-cbind(dat1,dat2bis)
dat3<-dat3[,order(colnames(dat3))]
for(i in 1:dim(dat1)[1])
{

dat2bis[,i]这可能不是很优雅,但应该可以:

 for(i in 1:dim(dat1)[1])
{
    dat2bis[,i]<-dat2bis[,1]
}

dat3<-cbind(dat1,dat2bis)
dat3<-dat3[,order(colnames(dat3))]
for(i in 1:dim(dat1)[1])
{

dat2bis[,i]这可能不是很优雅,但应该可以:

 for(i in 1:dim(dat1)[1])
{
    dat2bis[,i]<-dat2bis[,1]
}

dat3<-cbind(dat1,dat2bis)
dat3<-dat3[,order(colnames(dat3))]
for(i in 1:dim(dat1)[1])
{

dat2bis[,i]希望这不是对实际问题的过度简化,但从外观上看,
cbind
可能是您考虑的一个选项:

out <- cbind(dat1, 
             setNames(data.frame(t(replicate(nrow(dat1), dat2$value))), 
                      dat2$NE_id))
out[, order(names(out))]
#   NE001 NE001.1 NE002 NE002.1 NE003 NE003.1
# 1  -1.2       2   3.0    -0.4   2.0       3
# 2   2.0       2  -1.2    -0.4   3.0       3
# 3   3.0       2   2.0    -0.4  -1.5       3

out希望这不是对实际问题的过度简化,但从表面上看,
cbind
可能是您可以考虑的一个选项:

out <- cbind(dat1, 
             setNames(data.frame(t(replicate(nrow(dat1), dat2$value))), 
                      dat2$NE_id))
out[, order(names(out))]
#   NE001 NE001.1 NE002 NE002.1 NE003 NE003.1
# 1  -1.2       2   3.0    -0.4   2.0       3
# 2   2.0       2  -1.2    -0.4   3.0       3
# 3   3.0       2   2.0    -0.4  -1.5       3

out希望这不是对实际问题的过度简化,但从表面上看,
cbind
可能是您可以考虑的一个选项:

out <- cbind(dat1, 
             setNames(data.frame(t(replicate(nrow(dat1), dat2$value))), 
                      dat2$NE_id))
out[, order(names(out))]
#   NE001 NE001.1 NE002 NE002.1 NE003 NE003.1
# 1  -1.2       2   3.0    -0.4   2.0       3
# 2   2.0       2  -1.2    -0.4   3.0       3
# 3   3.0       2   2.0    -0.4  -1.5       3

out希望这不是对实际问题的过度简化,但从表面上看,
cbind
可能是您可以考虑的一个选项:

out <- cbind(dat1, 
             setNames(data.frame(t(replicate(nrow(dat1), dat2$value))), 
                      dat2$NE_id))
out[, order(names(out))]
#   NE001 NE001.1 NE002 NE002.1 NE003 NE003.1
# 1  -1.2       2   3.0    -0.4   2.0       3
# 2   2.0       2  -1.2    -0.4   3.0       3
# 3   3.0       2   2.0    -0.4  -1.5       3

out将yo
dat1
整形为“长格式”,将yo
dat1
整形为“长格式”,将yo
dat1
整形为“长格式”,将yo
dat1
整形为“长格式”,将yo
merge
整形为结果。将yo
dat1
整形为“长格式”,
合并
并重塑结果。