【发布时间】:2013-11-13 08:24:49
【问题描述】:
我有数据框 A, B, C, ... 并且想以相同的方式修改每个数据框,例如重新排序所有数据帧中存在的因子的因子水平:
A = data.frame( x=c('x','x','y','y','z','z') )
B = data.frame( x=c('x','y','z') )
C = data.frame( x=c('x','x','x','y','y','y','z','z','z') )
A$x = factor( A$x, levels=c('z','y','x') )
B$x = factor( B$x, levels=c('z','y','x') )
C$x = factor( C$x, levels=c('z','y','x') )
如果有大量数据框和/或需要进行大量修改,这将变得很费力。我怎样才能简洁地做到这一点,使用循环或更好的东西?一种简单的方法,例如
for ( D in list( A, B, C ) ) {
D$x = factor( D$x, levels=c('z','y','x') )
}
不起作用,因为它不会修改原始数据帧。
编辑:添加了 A、B 和 C 的定义以使其可重现。
【问题讨论】:
-
你能提供reproducible example吗?
-
已添加 A、B 和 C 的定义,以便您可以运行代码。
-
谢谢。我知道这会很烦人,尤其是在情况很明显的时候,但这是一种很好的做法,可以让我们的生活更轻松:)