在R中:如何从字符串加上列名再加上分类变量来创建数据框名称?

时间:2019-07-12 19:02:52

标签: r dataframe variables naming categorical-data

抱歉,这似乎是一个简单的问题,但我找不到答案。

我正在使用关键字组来搜索字符串中的重要短语。我的表格(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))

最终代码将被循环,以便关键字表可以扩展到任意数量的类别和组件,因此我不想键入单个数据框名称

1 个答案:

答案 0 :(得分:0)

考虑基数R的bysplit,它从一个或多个分组中创建数据帧的命名列表,您可以在其中使用$或{{ 1}}限定词。无需用许多类似结构的对象充斥全球环境。而是维护一个[[对象。如果存储在list中,则不会丢失数据框的功能。

list