在R中,如何在不替换其他列值的情况下将一个列的值复制到另一所选列?

时间:2019-05-17 15:07:01

标签: r

我想从DF B的列值下“复制”来自DF A的一列值。

以下是我对要实现的目标的可视化

My Objective

2 个答案:

答案 0 :(得分:0)

一种选择是在使列的bind_rows相同之后,对选定的列使用type

library(dplyr)
bind_rows(df2, df1[1] %>% 
                 transmute(ColumnC = as.character(ColumnA)))
#  ColumnC ColumnD
#1       a       b
#2       1    <NA>
#3       2    <NA>
#4       3    <NA>

数据

df1 <- data.frame(ColumnA = 1:3, ColumnB = 4:6)
df2 <- data.frame(ColumnC = 'a', ColumnD = 'b', 
         stringsAsFactors = FALSE)

答案 1 :(得分:0)

您也可以为此使用R base。您实际上想将df2与df1正确连接:

df1 <- data.frame(1:3, 4:6)
names(df1) <- paste0("c", 1:2)
df2 <- data.frame("a", "b")
names(df2) <- paste0("c", 3:4)

# renaming column to join on
names(df2)[1] <- "c1"
merge(x = df1[,1,drop=FALSE], y = df2, by.y = c("c1"), all = TRUE)