【发布时间】:2017-06-26 19:29:45
【问题描述】:
我正在尝试在 R 中名为“batting”的数据框中计算棒球的 Slugging Percentage,该数据框架由 Sean Lahaman's Website 上的“Batting.csv”创建。
每个维基百科的 Slugging Percentage 公式如下: ([单打] + [双打 x 2] + [三连击 x 3] + [本垒打 x 4])/[击打]
(这基本上是总碱基除以蝙蝠数)。
这是我的 R 代码:
# Import batting data
batting <- read.csv('Batting.csv')
# Create X1B (Singles)
batting$X1B <- batting$H - batting$X2B - batting$X3B - batting$HR
# Create Slugging Average (SLG)
batting$SLG <-
((1 * batting$x1B) + (2 * batting$X2B) + (3 * batting$X3B) + (4 * batting$HR)) /
batting$AB
这是错误信息:
Error in `$<-.data.frame`(`*tmp*`, SLG, value = numeric(0)) :
replacement has 0 rows, data has 97889
【问题讨论】:
-
没有名为
X2B或X3B的变量。 -
你有一个错字:
1 * batting$x1B应该是1 * batting$X1B,大写为X。此外,当我下载数据时,它是batting$2B`` 而不是batting$X2B。确保变量名称正确且一致。 -
X1Borx1B,大写?
标签: r dataframe error-handling