我的问题类似于这里的问题(Rename data frame),但我试图根据旋转变量名称重命名它。
df2<-data.frame(a=seq(1:5),b=c(1:10), c=c(11:20))
df2$a = c('alpha', 'alpha','alpha', 'beta', 'beta', 'gamma', 'beta','alpha', 'alpha','alpha')
variables<- c('alpha', 'beta', 'gamma')
for (var in variables) {
alpha<- df2
beta<- df2
gamma<- df2
}
我没有让这三行创建一个名为alpha,beta,gamma的df2副本,而是希望有一行来创建df2的副本,所以有
var <- df2
在循环内部,并且随着var与循环一起旋转,所以在三次循环之后,我将在循环中获得上面的alpha,beta,gamma。 我的真正目的是使用相同的数据框,然后对其进行大量计算,然后想要在循环中当前使用的变量之后命名结果数据框。
我知道在bash中我会做数据_ $ {var},这会产生data_alpha,data_beta,data_gamma,但在R中呢?
任何人都知道如何做到这一点?
谢谢!
答案 0 :(得分:1)
这是FAQ 7.21。该答案中最重要的部分是它不会这样做的地方。
最好是使用列表并将副本分配到列表中:
variables<- c('alpha', 'beta', 'gamma')
mydfs <- list()
for (var in variables) {
mydfs[[var]] <- df2
}
或仅仅是上述内容:
mydfs <- rep( list(df2), length(variables) )
names(mydfs) <- variables
然后可以使用lapply
,sapply
或类似功能进行其他处理。
答案 1 :(得分:0)
您可以执行assign(var, df2)
之类的操作。