将fread函数读入的数据转换为data.frame

时间:2015-10-15 03:51:34

标签: r class data.table fread

假设我有一个包含3行和4列的示例csv文件。说它看起来如下:

name1 name2  name3 name4
11    12     13    14
21    22     23    24
31    32     33    34

我是在使用fread()时阅读的(我将小样本用于说明目的):

data <- fread(sample.csv, stringsAsFactors=FALSE)

然后我做

class(data)

它会返回

[1] "data.table" "data.frame"

我想看第四列的第一个元素,我试过

data[1,4]

但它返回4(我猜是该列的索引)。

有趣的是,当我打电话给以下

data[1,] 

data[1]

它返回第一行。

所以我做了

data <- data.frame(data)

将数据转换为数据框。

我的问题:
1.由于最初的数据有两个类,有没有办法让我选择一个班级,然后“退出”。另一个?就我而言,我只想将数据用作数据框 2.一般来说,如果数据有多个类,我们可以选择保留一个类吗?例如,as.POSIXct()将返回一个包含两个类的对象(&#34; POSIXct&#34;&#34; POSIXt&#34;)。如果我们只想保留其中一个类怎么办?任何函数都可以通用的方式用于此目的吗?

2 个答案:

答案 0 :(得分:2)

如果你想使用fread并希望获取数据作为数据框,只需将data.table的属性设置为FALSE即可。默认情况下是真的。

默认情况下为data.table。参数data.frame

data.table=FALSE;

E.g。

options(datatable.fread.datatable=FALSE).

请参阅R fread的文档以供参考。 https://www.rdocumentation.org/packages/data.table/versions/1.10.4-2/topics/fread

答案 1 :(得分:-1)

data <- read.csv(sample.csv, stringsAsFactors=FALSE)

使用read.csv()直接将csv作为data.frame获取。

如果使用data[1,4],则应输出14作为输出。