R write.table read.table改变数据帧中某些列的格式

时间:2015-07-31 10:34:16

标签: r class shiny read.table write.table

使用write.table保存数据并使用read.table读取数据时遇到问题。

我编写了一些代码,用于从数千个文件中收集数据,进行一些计算,并创建数据框。在这个数据框中,我有8列,超过11000行。这些列包含8个变量,其中3个是有序因子;其他变量是数字。

在使用命令write.table之前查看数据结构时,我得到了我期望的结果:

str(data)
'data.frame':   11424 obs. of  8 variables:
 $ a_KN      : num  8.56e-09 1.11e-08 1.45e-08 1.88e-08 2.45e-08 ...
 $ a_DTM     : num  5.05e-08 5.12e-08 5.19e-08 5.26e-08 5.33e-08 ...
 $ SF        : num  5.89 4.6 3.58 2.79 2.18 ...
 $ Energy    : Ord.factor w/ 6 levels "160"<"800"<"1.4"<..: 1 1 1 1 1 1 1 1 1 1 ...
 $ EnergyUnit: Ord.factor w/ 3 levels "MeV"<"GeV"<"TeV": 1 1 1 1 1 1 1 1 1 1 ...
 $ Location  : Ord.factor w/ 7 levels "BeamImpact"<"WithinBulky"<..: 5 5 5 5 5 5 5 5 5 5 ...
 $ Ti        : num  0.25 0.25 0.25 0.25 0.25 0.25 1 0.25 1 0.25 ...
 $ Tc        : num  30 28 26 24 22 20 30 18 28 16 ...

之后我使用通常的write.table命令来保存我的文件:

write.table(data, file = "filename.txt")

现在,当我再次将这个文件读入R时,我看看结构,我得到了这个:

mydata <- read.table("filename.txt", header=TRUE)

> str(mydata)
'data.frame':   11424 obs. of  8 variables:
 $ a_KN      : num  8.56e-09 1.11e-08 1.45e-08 1.88e-08 2.45e-08 ...
 $ a_DTM     : num  5.05e-08 5.12e-08 5.19e-08 5.26e-08 5.33e-08 ...
 $ SF        : num  5.89 4.6 3.58 2.79 2.18 ...
 $ Energy    : num  160 160 160 160 160 160 160 160 160 160 ...
 $ EnergyUnit: Factor w/ 3 levels "GeV","MeV","TeV": 2 2 2 2 2 2 2 2 2 2 ...
 $ Location  : Factor w/ 7 levels "10cmTarget","AdjBulky",..: 4 4 4 4 4 4 4 4 4 4 ...
 $ Ti        : num  0.25 0.25 0.25 0.25 0.25 0.25 1 0.25 1 0.25 ...
 $ Tc        : int  30 28 26 24 22 20 30 18 28 16 ...

你知道如何解决这个问题吗?这也困扰我,因为我正在创建一个闪亮的应用程序,这个改变了的课程不适合我的目的。

谢谢!

0 个答案:

没有答案