【发布时间】:2020-10-30 19:37:30
【问题描述】:
我的代码行是
df1<-rbind(df1,assign(paste(x,"_name_",_Date,sep=""),Result))
基本上
assign(paste(x,"_name_",_Date,sep=""),Result)
与
相同df2
当我这样做时
df1<-rbind(df1,df2)
它可以工作,但这需要动态且不断变化,因为我每周都会进行这些更新。
【问题讨论】:
我的代码行是
df1<-rbind(df1,assign(paste(x,"_name_",_Date,sep=""),Result))
基本上
assign(paste(x,"_name_",_Date,sep=""),Result)
与
相同df2
当我这样做时
df1<-rbind(df1,df2)
它可以工作,但这需要动态且不断变化,因为我每周都会进行这些更新。
【问题讨论】:
我们需要get 从对象名称字符串中返回值,即assign 只将它分配给一个对象,它不返回值。
rbind(df1, {
nm1 <- paste(x,"_name_",_Date,sep="")
assign(nm1, Result)
get(nm1)})
使用一个可重现的小例子
rbind(head(iris), {
nm1 <- 'newobj'
assign(nm1, tail(iris))
get(nm1)})
# Sepal.Length Sepal.Width Petal.Length Petal.Width Species
#1 5.1 3.5 1.4 0.2 setosa
#2 4.9 3.0 1.4 0.2 setosa
#3 4.7 3.2 1.3 0.2 setosa
#4 4.6 3.1 1.5 0.2 setosa
#5 5.0 3.6 1.4 0.2 setosa
#6 5.4 3.9 1.7 0.4 setosa
#145 6.7 3.3 5.7 2.5 virginica
#146 6.7 3.0 5.2 2.3 virginica
#147 6.3 2.5 5.0 1.9 virginica
#148 6.5 3.0 5.2 2.0 virginica
#149 6.2 3.4 5.4 2.3 virginica
#150 5.9 3.0 5.1 1.8 virginica
【讨论】:
rbind 要求两个数据集中的列名相同。我用iris 展示了一个可重复的小例子,对我来说效果很好
all.equal(names(df1), names(Result))