我正在尝试将月份名称合并到存储变量的名称中。
import <- function(month) {
dataobj <- letters
assign("x", dataobj)
save("x", file="data.rda")
}
的工作原理。但以下不起作用 -
import <- function(month) {
dataobj <- letters
assign(substr(month, 1, 3), dataobj)
save(substr(month, 1, 3), file="data.rda")
}
似乎 save()将接受“x”但不接受 substr(month,1,3)。
任何想法如何解决这个问题?
答案 0 :(得分:6)
使用list
的{{1}}参数:
save()
答案 1 :(得分:5)
我不会使用特定的,依赖于月份的名称在环境中创建对象,而是使用month
作为名称的对象列表。
dat = lapply(1:4, function(x) letters)
names(dat) = c("Jan","Feb","Mar","Apr")
> dat
$Jan
[1] "a" "b" "c" "d" "e" "f" "g" "h" "i" "j" "k" "l" "m" "n" "o" "p" "q" "r" "s"
[20] "t" "u" "v" "w" "x" "y" "z"
$Feb
[1] "a" "b" "c" "d" "e" "f" "g" "h" "i" "j" "k" "l" "m" "n" "o" "p" "q" "r" "s"
[20] "t" "u" "v" "w" "x" "y" "z"
$Mar
[1] "a" "b" "c" "d" "e" "f" "g" "h" "i" "j" "k" "l" "m" "n" "o" "p" "q" "r" "s"
[20] "t" "u" "v" "w" "x" "y" "z"
$Apr
[1] "a" "b" "c" "d" "e" "f" "g" "h" "i" "j" "k" "l" "m" "n" "o" "p" "q" "r" "s"
[20] "t" "u" "v" "w" "x" "y" "z"
使用save(dat)
可以轻松保存此列表。如果您热衷于将月份保存在单独的对象中:
lapply(names(dat), function(month) {
save(dat[[month]], file = sprintf("%s.rda", month)
})
或使用旧的for循环:
for(month in names(dat)) {
save(dat[[month]], file = sprintf("%s.rda", month)
}