R 让它成为一个函数
在SO的帮助下,我现在有了一种重命名数据帧中所有变量的方法,除了选定的子集。我目前正在使用,请参阅blow(感谢) 我想写一个函数,在这里我可以定义1)我的数据,2)变量的向量,3)我想给函数中未选择的变量添加什么前缀(见下面我的尝试)。我错误地认为这很容易,但我很难让函数正常工作 下面是我编写函数的尝试,显然不起作用。此外,如果有人推荐一个网站或一些文本,我可以阅读,以更好地理解如何编写函数R 让它成为一个函数,r,function,R,Function,在SO的帮助下,我现在有了一种重命名数据帧中所有变量的方法,除了选定的子集。我目前正在使用,请参阅blow(感谢) 我想写一个函数,在这里我可以定义1)我的数据,2)变量的向量,3)我想给函数中未选择的变量添加什么前缀(见下面我的尝试)。我错误地认为这很容易,但我很难让函数正常工作 下面是我编写函数的尝试,显然不起作用。此外,如果有人推荐一个网站或一些文本,我可以阅读,以更好地理解如何编写函数 baRadd <- function(df, vector, suffix){names(df)
baRadd <- function(df, vector, suffix){names(df) <-
ifelse(names(df) %in% vector,names(df),
paste(suffix, names(df), sep = ".")) }
data(mtcars)
temp.mtcars <- mtcars
baRadd(temp.mtcars, c("mpg", "cyl", "disp"), "baR")
baRadd主要问题是函数不返回任何值。它只是修改data.framedf
,(这是评估环境的本地部分),然后退出
要使其返回修改过的对象,请执行以下操作:
data(mtcars)
mtcars1 <- mtcars
baRadd <- function(df, vector, suffix){
names(df) <- ifelse(names(df) %in% vector,names(df),
paste(suffix, names(df), sep = "."))
return(df)}
mtcars1 <- baRadd(mtcars1, c("mpg", "cyl", "disp"), "baR")
数据(mtcars)
mtcars1主要问题是函数不返回任何值。它只是修改data.framedf
,(这是评估环境的本地部分),然后退出
要使其返回修改过的对象,请执行以下操作:
data(mtcars)
mtcars1 <- mtcars
baRadd <- function(df, vector, suffix){
names(df) <- ifelse(names(df) %in% vector,names(df),
paste(suffix, names(df), sep = "."))
return(df)}
mtcars1 <- baRadd(mtcars1, c("mpg", "cyl", "disp"), "baR")
数据(mtcars)
mtcars1谢谢,我想我从来没有弄明白return()
。谢谢当然实际上,您不需要return()
。如果缺少,函数将返回其最后一行的值。因此,在上面的第二个示例中,您也可以:(a)将最后一行更改为newnames
;或者(b)删除最后一行,以及对newnames
的赋值(也就是说,这一位:newnames谢谢,我想我从来没有计算出return()
。谢谢!当然。你实际上不需要return()
。如果缺少,函数将返回其最后一行的值。因此,在上面的第二个示例中,您也可以:(a)将最后一行更改为newnames
;或(b)删除最后一行,并将赋值指定给newnames
(即此位:newnames
mtcars2 <- mtcars
baRadd2 <- function(df, vector, suffix){
newnames <- ifelse(names(df) %in% vector,names(df),
paste(suffix, names(df), sep = "."))
return(newnames)}
names(mtcars2) <- baRadd2(mtcars2, c("mpg", "cyl", "disp"), "baR")