在计算tnet中数据帧列表的接近度时,使用id保留列

时间:2018-04-18 07:45:36

标签: r list

我正在使用R&#39 closeness_w tnet的{​​{1}}功能。{/ p>

我有两个数据框df1df2。当我为每个数据帧计算closeness_w时,R保留列i中的唯一ID(并将其重命名为" node")。输出显示" closeness"和" n.closeness"结果

但是,如果我对mylist数据帧执行此操作,则R会删除i列,并且不会显示" n.closeness"结果。对于mylist,我正在尝试获取"节点"," closeness"和" 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

1 个答案:

答案 0 :(得分:1)

当你这样做时

mylist_output <- lapply(mylist, function(x) closeness_w(x)[, "closeness", drop = FALSE])

您指定只返回data.frame列,其中包含&#39; closeness&#39;。如果您想保留所有列,只需执行以下操作:

mylist_output <- lapply(mylist, function(x) closeness_w(x))

mylist_output <- lapply(mylist,closeness_w)

希望这有帮助。