你好,我刚开始使用 R,遇到了一个问题,即如何从名为 w2 的数据框中查找用户(uID)的网络和文章(faID)的网络。
faID uID
1 1256
1 54789
1 547821
2 3258
2 4521
2 4528
3 98745
3 1256
3 3258
3 2145
这只是一个例子,我有超过2000篇文章,想要在数据框格式中建立基于文章的用户关系,例如: ##对于第一篇文章##
1258 54789
1258 547821
54789 547821
同样适用于第二篇文章。
3258 4521
3258 4528
4528 4521
一些其他的信息是:
``` dput(head(w2,)) structure(list(faID=c(1L,1L,1L,1L,1L,1L),uID=c(20909L,6661L,1591L,28065L,42783L,3113L)), .Names=c("faID","uID"),row.names=c(7L,9L,10L,12L,14L,16L),class=data.frame") ```
(注:这是一段R语言代码,其中包含了一个数据框的结构。)
dim(w2)
[1] 364323 2
我正在使用一位志愿者建议的代码。
出现错误:<<<>>"Error in UseMethod("regroup") :没有适用于类" c('integer', 'numeric')"的对象的'regroup'方法。##
library(dplyr)
edges<-tbl_df(w2) %>%
group_by(w2$faID) %>%
do({
tmp <-combn(sort(.$user),m =2)
data.frame(a=tmp[1,],b=tmp[2,],stringsAsFactors=FALSE )
})%>%
ungroup
}
任何建议都将不胜感激。
dput
在一个较小的数据集(10-20行)上展示出现错误,我会尝试解决。 - akrun1
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12] [1,] 20909 20909 20909 20909 20909 6661 6661 6661 6661 1591 1591 1591 [2,] 6661 1591 28065 42783 3113 1591 28065 42783 3113 28065 42.... - akrunuser3841811
。是的,正如我之前提到的,并在链接的评论中发现的那样,目前存在一些限制(也许我错了)。 - akrun