【发布时间】:2019-07-12 19:02:52
【问题描述】:
抱歉,这似乎是一个简单的问题,但我找不到答案。
我正在使用关键词组来搜索重要短语的字符串。我的表 (srchtbl) 按类别(它们所指的一般事物)和组件(操作与描述)对单词进行分类
我的方法要求我深入到向量以提取词组进行搜索。我能够为每个类别名称和每个组件创建向量。
但是,我还想为每个类别命名的数据框。
我的数据:
word pattern category component
<chr> <chr> <chr> <chr>
1 pack pack pkg action
2 protect protect pkg action
3 well well pkg description
4 clever clever pkg description
5 care care pkg description
6 safe safe pkg description
这些语句使用适当的名称创建适当的数据框:
catgroups <- unique(srchtbl$category)
assign(paste("df_", catgroups[i], sep = ""), srchtbl %>% filter(category == catgroups[i]) %>% group_by(component))
这很好,但我如何在不使用整个语句的情况下引用它?如果我使用:
print(paste("df_", catgroups[3], sep = ""))
[1] "df_pkg"
所以如果不使用整个 assign 语句,我就无法再次引用它。
是否有另一种方法可以连接数据框名称并进行简单分配,例如:
"string" + catgroups[i] <- srchtbl %>% filter(category == catgroups[3]) %>% group_by(component))
最终代码将被循环,以便关键字表可以扩展到任意数量的类别和组件,因此我不想键入单个数据框名称
【问题讨论】:
-
是否有理由不将这些数据帧存储在命名列表中而不是全局环境中?
-
感谢您抽出宝贵时间查看我的评论。主要原因是我不知道怎么做,但如果这是最好的路线,我会查一下。
-
你可以用
my_list<- list()创建一个空列表,然后添加像my_list[["df_pkg"]] <- srchtbl %>% ...这样的数据框。然后你可以参考my_list$df_pkg。这应该接受[[中的表达式(即paste)。您当前的方式可能可行,但可能会很混乱。
标签: r dataframe variables naming categorical-data