少し異なる方法は、匿名関数を持たずに[
直接呼び出すことです。
fixDataFrames <- function(listOfDataFrames, columns = TRUE, drop = TRUE){
lapply(listOfDataFrames, `[`, , j = columns, drop = drop)
}
,
2つの間の空白スペースは、行インデックスのスペースを表すため、重要であることに注意してください。i
これを省略したままにすると、と同じ動作になりdf[ , columns]
ます。また、これdrop = TRUE
をデフォルトとして設定した[
ので、楽しみは動作を維持します。
@Chaseの回答からの同じデータで:
## Sample data
df1 <- df2 <- data.frame(x1 = rnorm(10), x2 = rnorm(10), x3 = rnorm(10))
listOfDataFrames <- list(df1, df2)
fixDataFrames(listOfDataFrames)
fixDataFrames(listOfDataFrames, 2)
fixDataFrames(listOfDataFrames, 2, drop = FALSE)
与える
> fixDataFrames(listOfDataFrames)
[[1]]
x1 x2 x3
1 -1.98347150 -0.50473182 0.56554491
2 -0.19597580 0.41004825 -0.35646296
3 0.81792146 -0.07646175 -2.02534426
4 -0.01903514 0.70687248 -0.25373188
5 -0.49233958 0.42497338 -0.15647100
6 0.62296268 1.88127659 0.41952414
7 -0.27260248 -2.59046602 -1.99294060
8 1.46344557 1.44803287 0.08634971
9 0.62207040 1.78290849 -0.17131320
10 -1.05730518 -0.45478467 1.15346862
[[2]]
x1 x2 x3
1 -1.98347150 -0.50473182 0.56554491
2 -0.19597580 0.41004825 -0.35646296
3 0.81792146 -0.07646175 -2.02534426
4 -0.01903514 0.70687248 -0.25373188
5 -0.49233958 0.42497338 -0.15647100
6 0.62296268 1.88127659 0.41952414
7 -0.27260248 -2.59046602 -1.99294060
8 1.46344557 1.44803287 0.08634971
9 0.62207040 1.78290849 -0.17131320
10 -1.05730518 -0.45478467 1.15346862
> fixDataFrames(listOfDataFrames, 2)
[[1]]
[1] -0.50473182 0.41004825 -0.07646175 0.70687248 0.42497338 1.88127659
[7] -2.59046602 1.44803287 1.78290849 -0.45478467
[[2]]
[1] -0.50473182 0.41004825 -0.07646175 0.70687248 0.42497338 1.88127659
[7] -2.59046602 1.44803287 1.78290849 -0.45478467
> fixDataFrames(listOfDataFrames, 2, drop = FALSE)
[[1]]
x2
1 -0.50473182
2 0.41004825
3 -0.07646175
4 0.70687248
5 0.42497338
6 1.88127659
7 -2.59046602
8 1.44803287
9 1.78290849
10 -0.45478467
[[2]]
x2
1 -0.50473182
2 0.41004825
3 -0.07646175
4 0.70687248
5 0.42497338
6 1.88127659
7 -2.59046602
8 1.44803287
9 1.78290849
10 -0.45478467