[英]pass data.frame name to a function R
我已经存储了.RData文件,我想做一个加载.RData然后使用.RData中名为df的data.frame的函数,但是data.frame的名称是该函数的参数,像这样:
test <-function(rdat,df)
{
load(rdat)
df <-with(df, subset(df, status=='A'))
test1(df)
}
test1 <-function(df)
{
df$new <- mean(df$old)
}
我不知道如何在要使用的data.frame对象中转换带有data.frame名称的字符串,我无法传递data.frame本身,因为它不存在。 也许有一种方法可以在环境中搜索名为df的data.frame。
谢谢!
您需要使用get
函数:
作为如何get
工作的示例,请尝试以下操作:
mat <- matrix(letters, ncol=2)
get('mat')
# [,1] [,2]
#[1,] "a" "n"
#[2,] "b" "o"
#[3,] "c" "p"
#[4,] "d" "q"
#[5,] "e" "r"
#...and so on
所以你的功能可能是这样的:
test <-function(rdat,df)
{
load(rdat)
#get will give you the data.frame from a string
df <- get(df)
#also you do not need 'with' with subset because subset uses NSE anyway
#and also using subset inside of functions is error prone because of NSE
#use simple subsetting which is faster, too
df <- df[df$status=='A',]
test1(df)
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.