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

最后两列 - 出于某种原因 - 不显示我给它们的名称(比如x.1and x.2),而是始终显示倒数第三列的名称。列x.1是除法的结果,a/x.y只是x.2四舍五入是一样的东西。现在,在创建了这个data.frame(使用 about 4,000 rows)后,我创建了一个简单的 csv:

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

这 - 奇怪的是 - 产生了一个34 GB的文件。当我省略最后两列时,它变成了一个小文件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 回答