将数据框重命名为旋转变量

时间:2014-10-13 18:55:10

标签: r dataframe rename

我的问题类似于这里的问题(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中呢?

任何人都知道如何做到这一点?

谢谢!

2 个答案:

答案 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

然后可以使用lapplysapply或类似功能进行其他处理。

答案 1 :(得分:0)

您可以执行assign(var, df2)之类的操作。