R:在函数(x,y)中找不到对象y [在r中传递数据帧的函数]

时间:2018-04-26 21:31:32

标签: r dataframe

我正在编写一个基于现有数据框构建新数据帧的函数。所以我基本上有

f1 <- function(x,y) {

x_adj <- data.frame("DID*"= df.y$`DM`[x], "LDI"= df.y$`DirectorID*`[-(x)], "LDM"= df.y$`DM`[-(x)], "IID*"=y)

}

我有4,000个数据帧df。所以我真的需要使用它,并且R返回错误,说没有找到df.y。 y意味着通过不同df的所有4000个名称的列表来使用。我是R的新人,所以任何帮助都会非常感激。

如果需要更多细节,我基本上会有类似

的内容
df.1 <- data.frame(x = 1:3, b = 5)

我需要使用函数

作为结果
df.11 <- data.frame(x = 1, c = 2:3, b = 5)
df.12 <- data.frame(x = 2, c = c(1,3), b = 5)
df.13 <- data.frame(x = 3, c = 1:2, b = 5)

提前致谢!

1 个答案:

答案 0 :(得分:0)

OP似乎使用动态名称访问data.frame

一种选择是使用get

get(paste("df",y,sep = "."))

以上get将返回df.1

因此,该功能可以修改为:

f1 <- function(x,y) {
  temp_df <- get(paste("df",y,sep = "."))
  x_adj <- data.frame("DID*"= temp_df$`DM`[x], "LDI"= temp_df$`DirectorID*`[-(x)],
  "LDM"= temp_df$`DM`[-(x)], "IID*"=y)

}