我正在制作一个数据框,其中包含从1871年到2016年的过去棒球运动员的比赛记录。DF名称是Master.new我想做的是获取那些在1903年后首次亮相的。(“首次亮相”列名)运行代码删除不需要的行后,新的DF擦除了比它应该擦除的更多,我知道是因为摘要命令。
我所做的就是
>
确保“首次亮相”列的类是“日期”
sapply(Master.new, class)
这就是结果
playerID birthYear debut finalGame "character" "integer" "Date" "Date"
运行摘要命令检查结构,在这里我可以看到日期范围并验证第一个日期是在1871年(19105年观察)
摘要(Master.new)
这就是结果
playerID birthYear debut finalGame
Length:19105 Min. :1820 Min. :1871-05-04 Min. :1871-05-05
Class :character 1st Qu.:1895 1st Qu.:1919-04-24 1st Qu.:1923-04-29
Mode :character Median :1937 Median :1961-06-09 Median :1966-10-02
Mean :1931 Mean :1956-02-23 Mean :1960-12-20
3rd Qu.:1969 3rd Qu.:1995-04-26 3rd Qu.:2000-09-29
Max. :1996 Max. :2016-10-02 Max. :2016-10-02
NA's :132 NA's :195 NA's :195
3.我运行命令只选择变量的记录"出道"这是大于,或过去1903-01-01创建一个新的DF称为Master.new。出道有7899观察,小于19105的Master.new这似乎是合乎逻辑的,因为我消除了多年前1903行。
Master.new.debut <- Master.new[Master.new $debut >= 1903-01-01,]
然后,我在新的Data FrameMaster.new上运行了摘要命令
summary(Master.new.debut)
下面是我收到的。我希望确认第一个记录必须在1903年。我得到的是最小值在1975年的记录。我需要的帮助是弄清楚为什么我的第一个记录不是在1903年,以及1903年到1975年间所有记录发生了什么。
谢谢你哈维尔
playerID birthYear debut finalGame Length:7899 Min. :1946 Min. :1975-04-07 Min. :1975-04-21 Class :character 1st Qu.:1964 1st Qu.:1988-09-02 1st Qu.:1994-07-31 Mode :character Median :1974 Median :1999-05-14 Median :2005-04-21 Mean :1973 Mean :1998-04-21 Mean :2003-04-21 3rd Qu.:1983 3rd Qu.:2008-07-13 3rd Qu.:2013-09-29 Max. :1996 Max. :2016-10-02 Max. :2016-10-02 NA's :195 NA's :195 NA's :195
问题在下面一行:
Master.new.debut <- Master.new[Master.new $debut >= 1903-01-01,]
原因是1903-01-01
部分被视为绝对数,并且由于date
也被存储为与1970-01-01的偏移量。因此,
请将该行更改为:
Master.new.debut <- Master.new[Master.new $debut >= '1903-01-01',]
强制日期比较。您甚至可以使用as.Date()
函数将字符串文字转换为日期。