首页 > 解决方案 > R:从另一个数据框中检索数据框名称

问题描述

我有一个数据框dataselect,它告诉我在每种分析情况下使用什么数据框(我们称之为相关数据框)。

案例是动态分配的,因此哪个数据帧相关取决于该案例。

根据案例,我想将相关数据框分配给指针“relevantdf”。我试过了:

datasetselect <- data.frame(case=c("case1","case2"),dataset=c("df1","df2"))

df1 <- data.frame(var1=letters[1:3],var2=1:3)
df2 <- data.frame(var1=letters[4:10],var2=4:10)


currentcase <- "case1"
relevantdf <- get(datasetselect[datasetselect$case == currentcase,"dataset"]) # relevantdf should point to df1

我不明白我是否对get()函数或子集过程有问题。

标签: rdataframe

解决方案


你快到了,问题是来自 datasetselect 的数据集列是一个因素,你只需要将它转换为字符

您可以在 datasetselect 的定义之后添加这一行:

datasetselect$dataset <- as.character(datasetselect$dataset)

你得到你预期的输出

> relevantdf
  var1 var2
1    a    1
2    b    2
3    c    3

推荐阅读