【发布时间】:2022-01-21 20:19:46
【问题描述】:
我希望对 R 中的这个问题有一些建议。我有一个数据框“my_fruits_data”,其中包含许多列,包括 name_cols 中的索引列。我想用 for 循环一一过滤这些索引列,并将过滤后的记录存储在各自的数据框中,它们的名称列在 df_fruits 中以进行后处理。显然,它不起作用,因为 df_fruits 元素是字符串而不是实际的数据框名称。我已经搜索并得到了一些提示,但实际上都没有帮助。
# column names
name_cols <- c("Index_apple",
"Index_pear",
"Index_orange",
"Index_watermelon",
"Index_strawberry"
)
# dataframe names for filtered result
df_fruits <- c("df_apple",
"df_pear",
"df_orange",
"df_watermelon",
"df_strawberry")
for (i in name_cols)
{
df_fruits[i] <- my_fruits_data %>%
filter (.data[[name_cols[i]]] ==1)
......
}
谢谢 追逐77
【问题讨论】:
-
它有助于为问题提供可用数据,使其成为一个完整的“最小工作示例”;请包括我们可以使用的样本数据(reprex),最好是
dput(x);请参阅stackoverflow.com/q/5963269、minimal reproducible example 和 stackoverflow.com/tags/r/info。最终,我觉得for循环不太可能是首选的方法,你能在所有这些处理结束时展示你打算拥有什么吗? R 可能有一种更有效的方式来满足您的需求。 -
这只是简单的数据拆分/数据分组。您不需要使用 for 循环。举例说明您的数据和预期输出。另外,进一步处理是什么意思?如果您要对每个水果数据集进行几乎相似的后期处理,您应该将整个数据集分组而不是将其放在不同的水果数据集中。