我想使用这个函数
chan <- function(x) {
for (i in x)
{assign(i,sample(1:10,2))}
out <- data.frame(sapply(x,get))
out
}
其中x将是字符串名称列表,此函数将为每个变量名称分配2个随机数,并将其作为数据帧返回。
例如 x <- c("e","f")
当我使用这个函数时,它给出错误Error in FUN(..., ) : object ... not found
但是如果我不使用这个函数,只是运行这个循环,它是有效的。如:
x <- c("e","f")
for (i in x)
{assign(i,sample(1:10,1))}
out <- data.frame(sapply(x,get))
您可以告诉assign
和get
使用pos
分配/获取变量时使用的环境(x将在此之后在您的全局环境中)
chan <- function(x) {
for (i in x) {assign(i,sample(1:10,2), pos=1)}
out <- data.frame(sapply(x, get, pos=1))
out
}
或者只是在局部函数环境中赋值
chan <- function(x) {
e <- environment()
for (i in x) {
assign(i,sample(1:10,2), pos=e)
}
out <- data.frame(sapply(x, get, pos=e))
out
}