这样做:
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)
的作用相同。
为什么会这样?
答案 0 :(得分:2)
该函数返回的是最后一个求值表达式:第一个函数中的c("name1","name2","name3")
,第二个函数中的setDT(df)
。
要更新作为参数传递的data.frame的名称,只需在update:
之后返回它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)