R 数据帧到矩阵中的行(用于接近度评级)

R 数据帧到矩阵中的行(用于接近度评级),r,matrix,row,reshape,R,Matrix,Row,Reshape,许多参与者(p1,p2,…)对4个单词(w1.w2,w1.w3,…,w3.w4)的所有成对组合给出了接近度评分,给出了以下数据帧: id w1.w2 w1.w3 w1.w4 w2.w3 w2.w4 w3.w4 p1 3 1 6 3 5 2 p2 2 3 5 1 6 1 p3 ..... 我想将这些评级转换为一系列矩阵,以对其应用多维缩放(参与者1个矩阵)。 我

许多参与者(p1,p2,…)对4个单词(w1.w2,w1.w3,…,w3.w4)的所有成对组合给出了接近度评分,给出了以下数据帧:

id  w1.w2  w1.w3  w1.w4  w2.w3  w2.w4  w3.w4  
p1      3      1      6      3      5      2
p2      2      3      5      1      6      1
p3 .....
我想将这些评级转换为一系列矩阵,以对其应用多维缩放(参与者1个矩阵)。
我想将我的数据转换为以下格式:

id  first.wd.in.pair  w2  w3  w4  
p1                w1   3   1   6  
p1                w2       3   5  
p1                w3           2
p2                w1   2   3   5  
p2                w2       1   6  
p2                w3           1  
p3 .....
id    first.word   second.word   rating
p1            w1            w2        3  
p1            w1            w3        1  
p1            w1            w4        6  
p1  ....
我已经研究了各种各样的重新格式化选项(例如
restrape2
中的
cast
),但似乎没有什么适合我的问题。
我还研究了邻接矩阵的函数(例如
igraph
中的
get.adjacency()
),但从我看到的情况来看,它似乎需要以下格式的函数:

id  first.wd.in.pair  w2  w3  w4  
p1                w1   3   1   6  
p1                w2       3   5  
p1                w3           2
p2                w1   2   3   5  
p2                w2       1   6  
p2                w3           1  
p3 .....
id    first.word   second.word   rating
p1            w1            w2        3  
p1            w1            w3        1  
p1            w1            w4        6  
p1  ....

提前感谢您的帮助!

最简单的方法是“重塑2”中的
melt
dcast

我不知道您尝试了什么,但这是一个非常标准的过程,除了一个步骤:分割融化的“变量”列。假设您的输入
data。frame
称为“mydf”:


dfL您已经研究过重新格式化选项了吗?我不相信您!给我们看一下您的代码!!!非常好。还有您实际想要的输出。欢迎来到SO:-)我为我的尝试没有显示代码而道歉。这是我关于堆栈溢出的第一个问题(我对R比较陌生),我将确保在下次发布一个包含它的问题。我在
melt
步骤后卡住了,所以您描述的列拆分步骤确实解决了我的问题。我所能做的最好的事情就是在
restrape
中使用
restrape
从宽到长,这不是我所需要的。我不能有效地使用dcast,所以这是完美的,非常感谢。