12

データフレームに「NA」を含む新しい列を追加したい:

     A       B
1    14379  32094
2   151884  174367
3   438422  449382

しかし、colの間に配置する必要があります。A と B は次のようになります。

     A       C      B
1    14379   NA    32094
2   151884   NA    174367
3   438422   NA    449382

col を追加する方法を知っています。列の後の C。B、でもそれは私には役に立ちません... 方法を知っている人はいますか?

4

4 に答える 4

26

2 つのステップで、列を並べ替えることができます。

dat$C <- NA
dat <- dat[, c("A", "C", "B")]
         A  C          B
1  0.596068 NA -0.7783724
2 -1.464656 NA -0.8425972

使用することもできますappend

dat <- data.frame(A = rnorm(2), B = rnorm(2))
as.data.frame(append(dat, list(C = NA), after = 1))

           A   C          B
1 -0.7046408  NA  0.2117638
2  0.8402680  NA -2.0109721
于 2013-04-11T19:19:18.220 に答える
5

使えdata.tableば機能が使えますsetcolorder。は論理変数として格納されることに注意してくださいNA。列を整数列、倍精度列、または文字列として開始する場合はNA_integerNA_real_またはを使用できます。NA_character_

例えば

library(data.table)
DT <- data.table(DF)
# add column `C`  = NA 

DT[, C := NA]

setcolorder(DT, c('A','C','B'))
DT
##         A  C      B
## 1:  14379 NA  32094
## 2: 151884 NA 174367
## 3: 438422 NA 449382

これを1行で実行できます

setcolorder(DT[, C: = NA], c('A','B','C'))
于 2013-04-12T00:11:05.757 に答える