【发布时间】:2020-06-12 08:44:07
【问题描述】:
我目前正在使用一个名为 df 的数据框,其中包含大约 100 个变量。其中有一组命名非常相似的因子变量:A_1、A_2、A_3、A_4 ... 等。 我想对这个变量子集进行一些计算——首先,我想为所有变量添加相同的新因子水平。
levels(df$A_1) <- c(levels(df$A_1), "x")
levels(df$A_2) <- c(levels(df$A_2), "x")
levels(df$A_3) <- c(levels(df$A_3), "x")
levels(df$A_4) <- c(levels(df$A_4), "x")
levels(df$A_5) <- c(levels(df$A_5), "x")
levels(df$A_6) <- c(levels(df$A_6), "x")
...
这段代码运行良好。但是,我想知道是否没有一种方法可以同时访问所有这些变量,因为它们都共享相同的前缀。
【问题讨论】:
-
这听起来像是将您的数据置于“整洁”结构中的一个案例。即,而不是
id+A_1-A_100,您将重塑为 3 列,id、time(1-100) 和A。这里有一些关于如何重塑的讨论 - stackoverflow.com/questions/2185252/… - 和一篇内容丰富的论文 - jstatsoft.org/index.php/jss/article/view/v059i10/v59i10.pdf。然后,这使得在A变量上调整因子水平成为简单的一行,而不是循环遍历所有A_n变量。