将sqldf与R中的数据帧列表一起使用

时间:2018-11-13 20:27:20

标签: r dataframe sqldf

我有一个要在sqldf查询中使用的数据帧列表。但是,我似乎无法使用$或[]直接从sqldf中的列表中引用数据帧。

我(大大简化了)的代码是:

DF_List <- list(df1 = data.frame(N = 1:26, N2 = 27:52 ), df2 = data.frame(N = 1:26, L = letters[1:26] ))

sqldf("select * from DF_List$df1, DF_List$df2 where DF_List$df1.N = DF_List$df2.N")

以下作品-但我想直接从列表中引用数据帧。

DF_List <- list(df1 = data.frame(N = 1:26, N2 = 27:52 ), df2 = data.frame(N = 1:26, L = letters[1:26] ))

new_df1 = DF_List$df1
new_df2 = DF_List$df2

sqldf("select * from new_df1, new_df2 where new_df1.N = new_df2.N")

1 个答案:

答案 0 :(得分:3)

您可以使用with

with(
  DF_List, 
  sqldf("select * from df1, df2 where df1.N = df2.N"))

或者,将您的列表转换为环境并使用envir参数

sqldf("select * from df1, df2 where df1.N = df2.N", envir = as.environment(DF_List))