我正在编写一个基于现有数据框构建新数据帧的函数。所以我基本上有
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)
提前致谢!
答案 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)
}