【发布时间】:2015-09-22 09:52:34
【问题描述】:
我有一个经常出现的情况,我在一组长的 R 代码的顶部设置了一个值,该代码用于对一个或多个数据帧进行子集化。像这样的:
city_code <- "202"
在整个过程结束时,我想将结果保存在一个适当命名的数据框中,例如,基于将“city_code”附加到一个公共存根。
city_results <- paste("city_stats", city_code, sep = "")
我的问题是我不知道如何将结果数据框重命名为“city_results”的值。那里有很多关于如何重命名数据框列的信息,但没有关于如何重命名数据框本身的信息。根据建议的答案,这里有一个澄清:
谢谢,@mike-wise。有助于研究有具体问题的 Hadley 的 Advanced R。
library(dplyr)
gear_code <- 4
gear_subset <- paste("mtcars_", gear_code, sep = "")
mtcars_subset <- mtcars %>% filter(gear == gear_code)
head(mtcars_subset)
write.csv(mtcars_subset, file = paste(gear_subset, ".csv", sep = ""))
这让我可以将子集写入一个适当命名的 csv 文件。但是,您的建议很有效,但我不能,例如,用新名称引用 data.frame:
assign(gear_subset, mtcars_subset)
head(gear_subset)
【问题讨论】:
-
嗨,约翰。我在回复中添加了一条评论来回答您的问题。
-
我知道这是旧的,但对于可能需要它的人来说,最后一行只需要
head(get(gear_subset))。assign的反义词是get。 -
次要点:paste("mtcars_", gear_code, sep = "") 可以稍微缩短为 paste0("mtcars_", gear_code)。 sep="" 选项的快捷方式。