为函数中的名称赋值
Assign values to a name within a function
这是我的代码:
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)
}
在代码中,我尝试构建一个函数,通过该函数我可以输入以字符串形式给出的国家/地区名称,然后自动生成以国家/地区命名的变量。但是,我 运行 这段代码,它 运行s 但没有按我的意愿生成确切的变量。例如,我想在我编码 get_test("Albania")
之后在环境中有一个名为 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
我认为您必须为 assign
指定环境,否则它将使用当前环境(在本例中是在函数内)。
你可以使用
assign(name, data, envir = .GlobalEnv)
或
assign(name, data, pos = 1)
这是我的代码:
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)
}
在代码中,我尝试构建一个函数,通过该函数我可以输入以字符串形式给出的国家/地区名称,然后自动生成以国家/地区命名的变量。但是,我 运行 这段代码,它 运行s 但没有按我的意愿生成确切的变量。例如,我想在我编码 get_test("Albania")
之后在环境中有一个名为 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
我认为您必须为 assign
指定环境,否则它将使用当前环境(在本例中是在函数内)。
你可以使用
assign(name, data, envir = .GlobalEnv)
或
assign(name, data, pos = 1)