【发布时间】:2018-06-07 13:59:07
【问题描述】:
我明白了这个错误背后的主要思想,我的数据太大了 512218 记录有 3 个变量,我正在尝试将数据框转换为表格格式,以便获得邻接矩阵。现在我正在使用 xtabs 并收到此错误
n <- xtabs(USER_LINK ~ screenName + screen_name_mention, df)
我尝试使用sapply(df,table)(如相关问题中所述),但没有奏效。我想知道是否有另一种方法可以将数据框转换为表格格式而不会出现此错误?
head 的数据
screenName screen_name_mention USER_LINK
1 g_fandos ecolandlab 1
2 andrewmbrass PLOSBiology 1
3 andrewmbrass PLOSBiology 1
4 welloldstem dbcurren 1
5 PaulJDavison BehavEcol 1
6 cbjones1943 BiolJLinnSoc¿ 1
str(df)
'data.frame': 512218 obs. of 3 variables:
$ screenName : Factor w/ 150233 levels "","#$%","#cuttingeeg",..: 50920 8866 8866 145600 106833 23847 23847 98575 98575 61282 ...
$ screen_name_mention: Factor w/ 150233 levels "","#$%","#cuttingeeg",..: 41276 110025 110025 33531 15579 17454 61209 112371 38473 110091 ...
$ USER_LINK : int 1 1 1 1 1 1 1 1 1 1 ...
例子:
User_name M_User Total
user 1 user 2 7
user 1 user 3 19
user 1 user 7 5
user 3 user 2 1
user 2 user 7 1
最终结果
User_name user 1 user 2 user 3 user 7
user 1 0 7 19 5
user 2 0 0 0 1
user 3 0 1 0 0
user 7 0 0 0 0
我的代码适用于像这样的小数据集(甚至创建 5000x5000 矩阵),但不适用于大数据集
【问题讨论】:
-
请分享您的数据
head。 -
现在有问题添加@MKR
-
谢谢@melissa。您能否也分享
str的数据? -
你想从你的数据中获取一个数组吗?
-
你的邻接矩阵会很大 (150233*150233),所以尝试在
xtabs中设置sparse=TRUE看看是否有帮助。或者使用igraph创建一个图并输出一个稀疏的adj矩阵??
标签: r data-processing