0

RにDataFrameがあります:

             Category1            Category 2      x              y  x.x
1                     T                    A      1              9    9
2                     T                    B      2              8    9
3                     T                    A     10              7    9
4                     T                    C     19              6    9
                      z            a    x.y          x.y   x.y
1            0.11111111            1   2342 0.0004269855 0.000
2            0.22222222            3   2342 0.0012809564 0.001
3            0.33333333           13   2342 0.0055508113 0.006
4            0.44444444           32   2342 0.0136635354 0.014

最後の 2 つの列には、何らかの理由で、私が付けた名前 ( と など) が表示されませんx.1x.2、代わりに常に最後から 3 番目の列名が表示されます。列x.1は の除算の結果でa/x.yありx.2、同じものを丸めただけです。これをdata.frame( about で4,000 rows) 作成したら、単純な csv を作成します。

write.csv(DF, 'DF.csv')

これは - 奇妙なことに - 34 GBのファイルを生成します。最後の 2 列を省略すると、2MB. この巨大なファイルを回避するにはどうすればよいですか? どこから来たのですか?

編集


除算演算:

DF$x.1 <- DF$a/DF['x.y']

データの読み込み:

DF <- read.csv('data.csv', sep=';')
4

1 に答える 1

0

transform構文エラーを避けるために、ここではそれが非常に適していると思います。これを使用すると、クリーンな構文で既存の列に基づいて新しい列を作成できます。

transform(DF,x.1 = a/x.y,x.2 = round(a/x.y,3))
  Category1 Category X2  x y x.x         z  a  x.y          x.1   x.2
1         1     TRUE  A  1 9   9 0.1111111  1 2342 0.0004269855 0.000
2         2     TRUE  B  2 8   9 0.2222222  3 2342 0.0012809564 0.001
3         3     TRUE  A 10 7   9 0.3333333 13 2342 0.0055508113 0.006
4         4     TRUE  C 19 6   9 0.4444444 32 2342 0.0136635354 0.014
于 2013-02-09T07:15:31.507 に答える