这样做:
x <- data.frame(a=1, b=2, c=3)
func <- function(df) {
names(df) <- c("name1","name2","name3")
}
x<-func(x)
变成x
名称的字符向量
但
这样做:
x <- data.frame(a=1, b=2, c=3)
func <- function(df) {
names(df) <- c("name1","name2","name3")
setDT(df)
}
x<-func(x)
将x作为data.table返回。它的工作原理也相同as.data.frame(x)
。
为什么会这样?
该函数返回的是最后一个求值表达式:c("name1","name2","name3")
在第一个函数中,setDT(df)
在第二个函数中。
要更新作为参数传递的data.frame的名称,只需在更新后将其返回即可:
x <- data.frame(a=1, b=2, c=3)
func <- function(df) {
names(df) <- c("name1","name2","name3")
df # This line returns the data.frame
}
x<-func(x)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句