我正在使用R的tnet
(https://www.rdocumentation.org/packages/tnet/versions/3.0.14/topics/closeness_w(的closeness_w
函数。
我有两个数据框,df1
和 df2
.当我计算每个数据帧的closeness_w
时,R 保留第 i 列中的唯一 id(并将其重命名为"节点"(。输出显示"接近度"和"n.接近度"结果。
但是,如果我对mylist
的数据帧执行此操作,R 会删除 i 列并且不显示"n.closeness"结果。对于mylist
,我正在尝试获得"节点","接近度"和"n.closeness"结果,就像我在每个单独的数据帧上进行计算时得到它们一样。
有人知道如何做到这一点吗?
df1
i <- c(1, 1, 2, 2, 2, 2, 3, 3, 4, 5, 5, 6)
j <- c(2, 3, 1, 3, 4, 5, 1, 2, 2, 2, 6, 5)
w <- c(4, 2, 4, 4, 1, 2, 2, 4, 1, 2, 1, 1)
df1 <- data.frame(i, j, w)
closeness_w(df1)
df2
i <- c(1, 1, 2, 2, 2, 2, 3, 3, 4, 5, 5, 7)
j <- c(2, 3, 4, 3, 7, 5, 1, 6, 2, 2, 1, 5)
w <- c(4, 2, 4, 4, 1, 2, 2, 4, 1, 2, 1, 1)
df2 <- data.frame(i, j, w)
closeness_w(df2)
mylist
mylist <- list(df1, df2)
mylist_output <- lapply(mylist, function(x) closeness_w(x)[, "closeness", drop = FALSE])
mylist_output
当你这样做时
mylist_output <- lapply(mylist, function(x) closeness_w(x)[, "closeness", drop = FALSE])
您指定仅返回带有"接近度"列的data.frame
。如果要保留所有列,只需执行以下操作:
mylist_output <- lapply(mylist, function(x) closeness_w(x))
或
mylist_output <- lapply(mylist,closeness_w)
希望这有帮助。