小编use*_*462的帖子

提取因子级别的名称

我正在尝试读取R中的一个巨大矩阵(2.8gb),因此,到目前为止,我发现的最好结果是

 require(data.table)

 DT<-fread("bigmatrix.csv")
Run Code Online (Sandbox Code Playgroud)

其中我几乎一无所知!

之后,我可以告诉您该矩阵有3列和5千万行。

每行的类型

             object1                       object 2           distance
 1: Kho.CENTRAL_KHOISAN.GWI           Kho.CENTRAL_KHOISAN.GWI 0.0000000
 2: Kho.CENTRAL_KHOISAN.GWI         Kho.CENTRAL_KHOISAN.GXANA 0.2195843  
 3: Kho.CENTRAL_KHOISAN.GWI Kho.CENTRAL_KHOISAN.KHOEKHOEGOWAB 0.6749363
 4: Kho.CENTRAL_KHOISAN.GWI          Kho.CENTRAL_KHOISAN.KHWE 0.6089206
 5: Kho.CENTRAL_KHOISAN.GWI        Kho.CENTRAL_KHOISAN.KORANA 0.7163111
 6: Kho.CENTRAL_KHOISAN.GWI         Kho.CENTRAL_KHOISAN.KWADI 0.8017179
Run Code Online (Sandbox Code Playgroud)

因此,它将两个对象的距离成对比较大约6900个对象

现在是我的问题:

我只想对41个对象进行成对比较。但是我不知道给我这个数据集的那个家伙怎么称这41个对象!

因此,我的解决方案是找到DT $ object1的级别,将其写入文件中,然后对其进行扫描以找到所需的41,该怎么办?

我试过了

foo<-factor(DT$object1)
Run Code Online (Sandbox Code Playgroud)

所以当我打电话

foo

....

6895 Levels: AA.BEJA.BEJA AA.BEJA.BEJA_2 AA.BERBER.AWJILAH ... Zun.ZUNI.ZUNI
Run Code Online (Sandbox Code Playgroud)

foo$Levels
Run Code Online (Sandbox Code Playgroud)

给我一个错误!

我敢肯定,有一种比C ++更聪明的方法(即循环遍历每行,仅在尚不存在的情况下将对象1的名称插入字符串向量中),但是我该怎么做?


编辑:现在出现另一个问题:

我已经确定了需要的41个对象,如何从data.table中提取与我相关的行?

我可以将对象的名称存储在数据框或向量中

r matrix bigdata data.table

1
推荐指数
1
解决办法
5362
查看次数

标签 统计

bigdata ×1

data.table ×1

matrix ×1

r ×1