【发布时间】:2020-08-12 23:18:27
【问题描述】:
我正在尝试创建一个简单的数据框,其中包含有关作者及其各自论文的信息。我有一个矩阵,其中包含作为行的作者 ID 和作为列的论文 ID。该矩阵包含 1 和 0,其中 1 表示作者在该论文上工作。例如,如果 A2P[1,1] == 1,则表示 ID 为 1 的作者在 ID 为 1 的论文上工作。
我正在尝试将此矩阵转换为包含所有这些关系的简单数据框,其中仅包含作者 ID 和他们研究的论文。如,
au_ID P_ID
1 1
1 12 # Author 1 has worked on both paper 1 and 12
2 1 # Author 2 has also worked on paper 1, in addition to papers 2 and 3.
2 2
2 3
...
这是我正在做的事情:
list1 <- list()
list2 <- list()
# Rows are Author IDs
# Columns are Paper IDs
for (row in 1:nrow(A2P)){
for (col in 1:ncol(A2P)){
if (A2P[row,col] == 1){
list1 <- append(list1, row)
list2 <- append(list2, col)
}
}
}
authorship["au_ID"] = list1
authorship["P_ID"] = list2
我很难让这段代码快速运行。它需要永远运行,现在持续二十分钟。我认为这与将每一行和每一列的值附加到每个列表有关,但我不确定。
任何帮助将不胜感激!非常感谢!
【问题讨论】: