我必须将信息从两个数据帧转换为一个矩阵,该矩阵是为进一步分析而特别设计的。我将从介绍一个正在使用的数据类型的玩具示例开始。
Game1 <- structure(list(Score1 = c(5, 9), Score2 = c(4.8, 12.8), Score3 = c(7.22,
2.3), Class = structure(2:1, .Label = c("Dwarf", "Paladin"), class = "factor"),
Race = structure(1:2, .Label = c("Dwarf,", "Elf"), class = "factor")), row.names = c("Stan",
"Kyle"), class = "data.frame")
Game2 <- structure(list(Score1 = c(3, 8.1), Score2 = c(6.3, 6.6), Score3 = c(1.2,
10.3), Class = structure(2:1, .Label = c("Rouge", "Wizard"), class = "factor"),
Race = structure(2:1, .Label = c("Gnome", "Human,"), class = "factor")), row.names = c("Cartman",
"Kenny"), class = "data.frame")
我想对不同球员的得分进行关联,理想的情况是平均皮尔森关联。我想保留原始两个数据帧中的某些残差特征,如下所示。
我希望从中得到的输出是:
Correlation Game1_Class Game1_Race Game2_Class Game2_Race
Stan:Cartman -0.815 Paladin Dwarf Wizard Human
Kyle:Cartman 0.942 Fighter Elf Wizard Human
Stan:Kenny 0.947 Wizard Human Ranger Gnome
Kyle:Kenny -0.998 Rouge Gnome Ranger Gnome
我使用通用系数相关性来计算相关性,我更喜欢使用皮尔逊或斯皮尔曼。
每个数据帧(在我的真实数据中)的行数差异很大。
答案 0 :(得分:2)
您可以定义一个创建此表的自定义函数
val num = Array("one", "two", "three")
val stringToInt = num.zipWithIndex.toMap.mapValues(_ + 1)
// Map("one" -> 1, "two" -> 2, "three" -> 3)
val two: Int = stringToInt("two")