我正在尝试将数据帧添加到带有标题的另一个数据帧中

时间:2019-01-09 14:37:50

标签: r

我有两个数据框,我想将它们合并到下面提到的输出中。如果有人可以向我显示正确的路径,我将不胜感激:

a。 Dataframe1

Col1     Col2     Col
zbo      123      40
zbo      6547     50
zbo      6589     60

b。 Dataframe2

Column  Column
tile    zbo
file    abc
date    01/09/2018

预期结果

tile :  zbo
file :  abc
date :  01/09/2018
Col1     Col2     Col
zbo      123      40
zbo      6547     50
zbo      6589     60

1 个答案:

答案 0 :(得分:1)

我们可以捕获第二个数据帧和paste与第一个数据帧的输出

v1 <- do.call(paste, c(df2, sep=" : ", collapse="\n"))
cat(paste(v1, paste(trimws(sub("^\\d+", "", capture.output(df1))),
              collapse="\n"), sep="\n"), sep="\n")
#tile : zbo
#file : abc
#date : 01/09/2018
#Col1 Col2 Col
#zbo  123  40
#zbo 6547  50
#zbo 6589  60

如果我们需要一列data.frame作为输出,请移除cat包装并使用read.csv来读取data.frame

read.csv(text = paste(v1, paste(trimws(sub("^\\d+", "", capture.output(df1))),
              collapse="\n"), sep="\n"), header = FALSE)
#                 V1
#1        tile : zbo
#2        file : abc
#3 date : 01/09/2018
#4     Col1 Col2 Col
#5      zbo  123  40
#6      zbo 6547  50
#7      zbo 6589  60

数据

df1 <- structure(list(Col1 = c("zbo", "zbo", "zbo"), Col2 = c(123L, 
 6547L, 6589L), Col = c(40L, 50L, 60L)), class = "data.frame", row.names = c(NA, 
 -3L))

df2 <- structure(list(Column = c("tile", "file", "date"), Column.1 = c("zbo", 
 "abc", "01/09/2018")), class = "data.frame", row.names = c(NA, 
 -3L))