在 R 中:如何从字符串加上列名加上分类变量创建数据框名称?
In R: How do I create a dataframe name from a string plus a column name plus categorical variable?
抱歉,这似乎是一个简单的问题,但我找不到答案。
我正在使用关键字组来搜索字符串中的重要短语。我的 table (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"
所以如果不使用整个赋值语句我就无法再次引用它。
是否有另一种方法来连接数据框名称并进行简单赋值,例如:
"string" + catgroups[i] <- srchtbl %>% filter(category == catgroups[3]) %>% group_by(component))
最终代码会循环,这样关键字 table 可以扩展到任意数量的类别和组件,所以我不想输入单独的数据框名称
考虑基础 R 的 by
或 split
,它从一个或多个分组中创建一个命名的数据框列表,您可以在其中使用 $
或[[
限定符。无需用许多结构相似的对象淹没全局环境。而是维护一个 list
对象。如果存储在 list
.
中,您不会失去数据框的任何功能
df_list1 <- split(srchtbl, srchtbl$category)
df_list1$pkg
# word pattern category component
# 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
dflist2 <- by(srchtbl, srchtbl$category, identity)
dflist2[['pkg']]
# word pattern category component
# 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
抱歉,这似乎是一个简单的问题,但我找不到答案。
我正在使用关键字组来搜索字符串中的重要短语。我的 table (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"
所以如果不使用整个赋值语句我就无法再次引用它。
是否有另一种方法来连接数据框名称并进行简单赋值,例如:
"string" + catgroups[i] <- srchtbl %>% filter(category == catgroups[3]) %>% group_by(component))
最终代码会循环,这样关键字 table 可以扩展到任意数量的类别和组件,所以我不想输入单独的数据框名称
考虑基础 R 的 by
或 split
,它从一个或多个分组中创建一个命名的数据框列表,您可以在其中使用 $
或[[
限定符。无需用许多结构相似的对象淹没全局环境。而是维护一个 list
对象。如果存储在 list
.
df_list1 <- split(srchtbl, srchtbl$category)
df_list1$pkg
# word pattern category component
# 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
dflist2 <- by(srchtbl, srchtbl$category, identity)
dflist2[['pkg']]
# word pattern category component
# 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