r - 给定特定数据帧,如何减去矩阵中的两个值?
问题描述
我目前正在尝试制作一个可以预测团队得分的工具。本质上,我使用两个变量并减去它们对应的 r 值。这是我正在考虑的数据框。
每个 A:J 团队都有一个与之关联的“r 值”:
# [,1]
#[1,] -0.870 8
#[2,] -0.750 7
#[3,] 2.290 2
#[4,] -0.050 5
#[5,] 0.355 4
#[6,] -0.895 9
#[7,] 3.290 1
#[8,] -0.510 6
#[9,] 0.430 3
#[10,] -3.290 10
我为不够清晰道歉,但“r值”在第1列,第2列的值对应团队的字母(即A=1、B=2等)
参考数据框,我正在尝试执行以下操作:对于第一行,从 A 中减去 E。对于第二行,从 F 中减去 A,等等。
我希望这是有道理的。我最终不确定如何以最有效的方式解决这个问题。感谢您的帮助。
解决方案
我们可以创建一个命名向量,然后使用它来匹配“AwayTeam”、“HomeTeam”的值并进行减法
nm1 <- setNames(m1[,1], LETTERS[m1[,2]])
Reduce(`-`, lapply(df1[c('AwayTeam', 'HomeTeam')], function(x) nm1[x]))
或者它只是
nm1[df1[['AwayTeam']]] - nm1[df1[['HomeTeam']]]
数据
m1 <- structure(c(-0.87, -0.75, 2.29, -0.05, 0.3555, -0.895, 3.29,
-0.51, 0.43, -3.29, 8, 7, 2, 5, 4, 9, 1, 6, 3, 10), .Dim = c(10L,
2L))
df1 <- structure(list(Week = c(3, 3, 4, 4, 5, 5), AwayTeam = c("E",
"A", "H", "I", "F", "F"), HomeTeam = c("A", "F", "E", "A", "C",
"J")), class = "data.frame", row.names = c(NA, -6L))
推荐阅读
- mysql - MySQL - 如何将具有 NULL 值的 CSV 导出为空?
- jenkins - 来自詹金斯的 SSH 客户端即使在构建成功后也不会终止
- perl - Perl libXML 使用 findnodes 搜索默认命名空间
- c# - Identity Server 4 CORS 未配置
- sql - PostGIS 和坐标,确定一个点是否在多边形/多多边形 (kml) 内
- unity3d - 如何统一创建动态渐变背景2d
- c# - telerik:RadCalendar 不关注设定日期
- post - ab:无法读取 POST 数据文件:找到文件结尾
- c# - API 422 响应在客户端截断数据
- angular - 如何在 Typescript 中将组件类定义为接口字段?