gpt4 book ai didi

r - 如何根据变量数(var1、var2 等)自动调整 R 脚本

转载 作者:行者123 更新时间:2023-12-04 10:36:33 25 4
gpt4 key购买 nike

主要数据集:

df <- data.frame(var1 =c(1, 2, 1), var2 = c(2, 3, 3))

我的映射表:
mt <- data.frame(var1 = c(1, 2, 1), var2 = c(2, 3,3), color = c('red', 'blue', 'yellow'))

要将 df 合并到 mt,保留 df 中的所有行:
df <- merge(x = df, y=mt, by=c("var1", "var2"), all.x = TRUE)

问题:如何动态更改代码,以便如果我有 4 个变量(即 var1、var2、var3、var4),代码将自动调整为以下内容?
df <- merge(x = df, y=mt, by=c("var1", "var2", "var3", "var4"), all.x = TRUE)
同样,如果我们有 5 个变量,它会自动调整为:
df <- merge(x = df, y=mt, by=c("var1", "var2", "var3", "var4", "var5"), all.x = TRUE)

最佳答案

如果两个数据集具有在 by 中使用的相同列名,那么我们就不需要指定 by因为它通过匹配相交的列名自动选取列。

merge(df, mt, all.x = TRUE)

但是,如果还有其他列并且只想指定“var”列,那么选项是 startsWith
merge(x = df, y=mt, by= names(df)[startsWith(names(df), "var")], all.x = TRUE)

grep
merge(x = df, y=mt, by= grep("^var\\d+$", names(df), value = TRUE), all.x = TRUE)

关于r - 如何根据变量数(var1、var2 等)自动调整 R 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60159486/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com