下午好,
我试图计算R中数据框架中棒球的Slugging Percentage,称为"击球",由" Batting.csv"在Sean Lahaman's Website找到。
每个维基百科的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
谢谢!
答案 0 :(得分:0)
这有效:
> batting$SLG = (batting$X1B + 2*batting$X2B + 3*batting$X3B + 4*batting$HR)/batting$AB
> summary(batting$SLG)
Min. 1st Qu. Median Mean 3rd Qu. Max. NA's
0.000 0.176 0.309 0.290 0.398 4.000 15381
在您的示例中,x
中有一个小写batting$x1B
。确保它如上所述大写。