R “错误”;没有适用于'的方法;重组';适用于“类”的对象;c(';整数';,';数字';)”&引用;
嗨,我是r的新手,我有一个问题,即从一个名为w2-like的数据帧中查找用户网络(uID)和文章网络(faID)R “错误”;没有适用于'的方法;重组';适用于“类”的对象;c(';整数';,';数字';)”&引用;,r,dplyr,R,Dplyr,嗨,我是r的新手,我有一个问题,即从一个名为w2-like的数据帧中查找用户网络(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多篇文章,我想根据数
faID uID
1 1256
1 54789
1 547821
2 3258
2 4521
2 4528
3 98745
3 1256
3 3258
3 2145
这只是一个例子,我有2000多篇文章,我想根据数据帧格式的文章建立用户之间的关系,例如。
###第一条##
###第2条也一样##
其他一些信息包括
dput(头部(w2,))
结构(列表(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”)
我正在使用一位志愿者建议的代码
错误出现在我想这还没有在
dplyr
读取中实现
你可以:
library(gsubfn)
library(dplyr)
w2%>%
group_by(faID) %>%
fn$do2(~combn(.$uID, m=2)) #`do2` from the link
# $`1`
# [,1] [,2] [,3]
#[1,] 1256 1256 54789
#[2,] 54789 547821 547821
# $`2`
# [,1] [,2] [,3]
# [1,] 3258 3258 4521
#[2,] 4521 4528 4528
# $`3`
# [,1] [,2] [,3] [,4] [,5] [,6]
# [1,] 98745 98745 98745 1256 1256 3258
# [2,] 1256 3258 2145 3258 2145 2145
数据
我复制粘贴链接中的代码,然后应用上面的代码,它给我这个错误“eval中的错误(expr,envir,enclose):object fn notfound@user3841811. 如果我不加载
库(gsubfn)
,我将得到您提到的错误。@user3841811。对于相同的数据集,我没有任何错误。如果您可以在显示错误的较小数据集(10-20行)上使用dput显示数据,我会尝试。实际上,上面的数据只是整个数据集的一个子集。一些信息是dput(头(w2),结构(列表(faID=c(1L,1L,1L,1L,1L),uID=c(20909L,6661L,1591L,28065L,42783L,3113L)),name=c(“faID”,“uID”),row.names=c(7L,9L,10L,12L,14L,16L),class=“data.frame”)@user3841811。使用我的第二种方法。我得到了结果。res$combN[1]“15913113113159166115912090912806515914278331131666611328065,311342783666120909666128065666142783,20909280652090920909209092090209209092090209209092090942783,2090942783“。使用gsubfn,我也得到了结果<代码>1[,1][,2][,3][,4][,5][,6][,7][,8][,9][,10][,11][,12][1,]20909 20909 20909 6661 6661 6661 6661 1591 1591[2,]6661 1591 28065 42783 3113 1591 28065 423。。。。
3258 4521
3258 4528
4528 4521
dim(w2)
[1] 364323 2
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
}
library(gsubfn)
library(dplyr)
w2%>%
group_by(faID) %>%
fn$do2(~combn(.$uID, m=2)) #`do2` from the link
# $`1`
# [,1] [,2] [,3]
#[1,] 1256 1256 54789
#[2,] 54789 547821 547821
# $`2`
# [,1] [,2] [,3]
# [1,] 3258 3258 4521
#[2,] 4521 4528 4528
# $`3`
# [,1] [,2] [,3] [,4] [,5] [,6]
# [1,] 98745 98745 98745 1256 1256 3258
# [2,] 1256 3258 2145 3258 2145 2145
w2 <- structure(list(faID = c(1L, 1L, 1L, 2L, 2L, 2L, 3L, 3L, 3L, 3L
), uID = c(1256L, 54789L, 547821L, 3258L, 4521L, 4528L, 98745L,
1256L, 3258L, 2145L)), .Names = c("faID", "uID"), class = "data.frame", row.names = c(NA,
-10L))
res <- w2 %>%
group_by(faID) %>%
do({data.frame(
combN=paste(apply(combn(sort(.$uID), m=2),2,paste,collapse=" "),
collapse=", "), stringsAsFactors=F)})
res
# faID combN
# 1 1 1256 54789, 1256 547821, 54789 547821
# 2 2 3258 4521, 3258 4528, 4521 4528
# 3 3 1256 2145, 1256 3258, 1256 98745, 2145 3258, 2145 98745, 3258 98745
library(data.table)
cSplit(cSplit(res, "combN", ", ", "long"),"combN", " ")
# faID combN_1 combN_2
# 1: 1 1256 54789
# 2: 1 1256 547821
# 3: 1 54789 547821
# 4: 2 3258 4521
# 5: 2 3258 4528
# 6: 2 4521 4528
# 7: 3 1256 2145
# 8: 3 1256 3258
# 9: 3 1256 98745
# 10: 3 2145 3258
# 11: 3 2145 98745
# 12: 3 3258 98745