这是我的代码:
get_test <- function(name){
data <- filter(data_all_country,country == name)
# transform the data to a time series using `ts` in `stats`
data <- ts(data$investment, start = 1950)
data <- log(data)
rule <- substitute(name)
assign(rule,data)
}
在代码中,我尝试构建一个函数,通过该函数我可以输入字符串中给出的国家/地区名称,然后将自动生成由国家/地区命名的变量。但是,我运行此代码,它运行但没有生成我想要的确切变量。例如,我希望在编码Albania
之后在环境中有一个名为get_test("Albania")
的变量。
我想知道为什么?
Ps:data_all_country
的数据集如下:
year country investment
1 1950 Albania NA
2 1951 Albania NA
3 1952 Albania NA
4 1953 Albania NA
5 1954 Albania NA
6 1955 Albania NA
请注意,数据集没问题,只有部分数据集为NA
答案 0 :(得分:3)
我认为您必须为assign
指定环境,否则它将使用当前环境(在本例中为函数内)。
您可以使用
assign(name, data, envir = .GlobalEnv)
或
assign(name, data, pos = 1)