【发布时间】:2021-03-19 01:54:48
【问题描述】:
我想用 R 中第二个数据帧中的变量替换多个变量。
df1$var1 <- df2$var1
df1$var2 <- df2$var2
# and so on ...
正如您所见,两个数据帧中的变量名称相同,但是数值略有不同,而正确的版本在 df2 中,但需要在 df1 中。我需要为复杂数据集中的许多变量执行此操作,并想知道是否有人可以帮助以更有效的方式对此进行编码(可能不使用列引用)。
这里有一些示例数据:
# dataframe 1
var1 <- c(1:10)
var2 <- c(1:10)
df1 <- data.frame(var1,var2)
# dataframe 2
var1 <- c(11:20)
var2 <- c(11:20)
df2 <- data.frame(var1,var2)
# assigning correct values
df1$var1 <- df2$var1
df1$var2 <- df2$var2
【问题讨论】:
-
两个数据框的尺寸是否相同(行数和列数相同)?如果是这样,为什么不简单地使用
df2继续前进。也许您应该发布 actual 数据和问题,因为这似乎过于简单。如果不同的行/列在唯一标识符上考虑merge然后分配。 -
感谢 Parfait,抱歉,这太简单了。我是新来的,不确定它是如何“工作”的; df2 只有我需要替换的变量(所以与 df1 相同的行,更少的列);我正在考虑
merge,因为我有一个 ID 变量,但不知何故认为可能有一种不同的方式,而不必事后重新排列 df 的顺序(因此只是替换值)。