合并基于列的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将yodat1
整形为“长格式”,将yodat1
整形为“长格式”,将yodat1
整形为“长格式”,将yodat1
整形为“长格式”,将yomerge
整形为结果。将yodat1
整形为“长格式”,合并
并重塑结果。