R関連‎ > ‎

Rのデータフレーム操作

順番を変える場合は、

order を使う。
 order(a$code)
  [1]   1   2   3   4   5   6   7   8   9  10  11  12  13  14  15  16  17  18
 [19]  19  20  21  22  23  24  25  26  27  28  29  30  31  32  33  34  35  36
 [37]  37  38  39  40  41  42  43  44  45  46  47  48  49  50  51  52  53  54
 [55]  55  56  57  58  59  60  61  62  63  64  65  66  67  68  69  70  71  72
 [73]  73  74  75  76  77  78  79  80  81  82  83  84  85  86  87  88  89  90
 [91]  91  92  93  94  95  96  97  98  99 100
> head(a[order(a$code),])
        date code dayGap openGap      X1v      X2v      X3v      X4v      X5v
1 2010-08-20 1332      C       D  0.01075 -0.04710  0.00346  0.01042 -0.02456
2 2010-08-19 1332      B       C -0.04710  0.00346  0.01042 -0.02456 -0.01712
3 2010-08-17 1332      E       E  0.00346  0.01042 -0.02456 -0.01712  0.00337
4 2010-08-16 1332      C       C  0.01042 -0.02456 -0.01712  0.00337 -0.02027
5 2010-08-13 1332      B       C -0.02456 -0.01712  0.00337 -0.02027  0.00993
6 2010-08-12 1332      D       E -0.01712  0.00337 -0.02027  0.00993  0.00334
       X6v      X7v      X8v      X9v     X10v X25mv X52mv usDayGap usTotalGap
1 -0.01712  0.00337 -0.02027  0.00993  0.00334     Y     Y  0.00110          0
2  0.00337 -0.02027  0.00993  0.00334 -0.01007     Y     Y -0.01465          0
3 -0.02027  0.00993  0.00334 -0.01007  0.01993     Y     Y  0.01309          0
4  0.00993  0.00334 -0.01007  0.01993  0.00339     Y     Y  0.00166          0
5  0.00334 -0.01007  0.01993  0.00339 -0.02041     Y     Y -0.00767          0
6 -0.01007  0.01993  0.00339 -0.02041 -0.02000     Y     Y -0.00719          0


該当の行を抜き出すには、

whichを使えばよい?
 which(a$dayGap=="C")
 [1]   1   4   8   9  11  14  18  19  25  27  28  30  31  38  41  48  50  52  53
[20]  62  65  66  68  69  73  74  75  78  80  81  82  83  84  85  89  90  91  93
[39]  94  95  96  97 100
> head(a[which(a$dayGap=="C"),])
         date code dayGap openGap      X1v      X2v      X3v      X4v      X5v
1  2010-08-20 1332      C       D  0.01075 -0.04710  0.00346  0.01042 -0.02456
4  2010-08-16 1332      C       C  0.01042 -0.02456 -0.01712  0.00337 -0.02027
8  2010-08-10 1332      C       C -0.02027  0.00993  0.00334 -0.01007  0.01993
9  2010-08-09 1332      C       E  0.00993  0.00334 -0.01007  0.01993  0.00339
11 2010-08-05 1332      C       C -0.01007  0.01993  0.00339 -0.02041 -0.02000
14 2010-08-02 1332      C       C -0.02041 -0.02000  0.05229 -0.00690 -0.00342
        X6v      X7v      X8v      X9v     X10v X25mv X52mv usDayGap usTotalGap
1  -0.01712  0.00337 -0.02027  0.00993  0.00334     Y     Y  0.00110          0
4   0.00993  0.00334 -0.01007  0.01993  0.00339     Y     Y  0.00166          0
8   0.00339 -0.02041 -0.02000  0.05229 -0.00690     Y     N -0.00844          0
9  -0.02041 -0.02000  0.05229 -0.00690 -0.00342     Y     N  0.00680          0
11  0.05229 -0.00690 -0.00342  0.01024 -0.03448     N     N -0.00263          0
14  0.01024 -0.03448 -0.00667  0.00993 -0.02007     Y     N  0.01802          0

列の付けたし、消去

消すほうは、普通に部分選択?みたいにする。

1,4,5列目のみ
today <- today[, c(1,4,5)]

付け足しは、自由に名前をつけていける
today$emotion <- c("happy, "angry", "happy", "worried")

dataFrameは、行の長さがそろったリスト?(でいいのか?)なので、付け足す列は、他の列と行数が合う必要がある。



Comments