R 为什么我的函数返回一个奇怪的数据帧

R 为什么我的函数返回一个奇怪的数据帧,r,for-loop,dataframe,R,For Loop,Dataframe,我写了一个函数来返回每年的鸟击次数。年份和罢工次数是正确的,但我的数据框的第一列有什么问题?为什么最后一排打不到 flightDates <- mdy_hm(birds[,10]) flightYears <- as.factor(year(flightDates)) years <- (c(2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011)) strikesPerYear <-

我写了一个函数来返回每年的鸟击次数。年份和罢工次数是正确的,但我的数据框的第一列有什么问题?为什么最后一排打不到

flightDates <- mdy_hm(birds[,10])
flightYears <- as.factor(year(flightDates))
years <- (c(2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011))
strikesPerYear <- function(x){
strikes <- c(NA, NA)
for(i in years){  
    countStrikes <- length(which(x == i))
    strikes <- data.frame(rbind(cbind("Year"=i, "NumStrikes"=as.numeric(countStrikes)), strikes))
}
return(strikes)
}

strikesPerYear(flightYears)

> strikesPerYear(flightYears)
        Year NumStrikes
1       2011      10483
110     2010      10923
19      2009      10741
18      2008       8903
17      2007       8746
16      2006       8010
15      2005       7804
14      2004       7667
13      2003       6664
12      2002       6769
11      2001       6287
        2000       6407
strikes   NA         NA

flightDates第一列是输出
data.frame
行名。看起来您有一个
矩阵
作为输入(它的
行名
编号为:1,2,3,4,5,)并且您以某种方式将
行名
转换为字符,或者在从
矩阵
数据.frame
的转换过程中,他们将其类更改为字符,并且您的输出具有随机排列的
行名

最后一行可能是
NA
NA
,因为您的功能中有一行

strikes <- c(NA, NA)

strikesI change strikes您所说的第一列实际上是result data.frame的row.name,它们显示原始flightYears data.frame的行号。最后一列是
strikes NA NA
,因为您使用
rbind
将其行绑定(追加)到strikes data.frame。但是如何修复它?我从数据集中提取日期,然后将年份保留为“flightYears”,我将这些信息添加到问题中,为了告诉你如何修复它,你需要告诉我们这到底意味着什么。您没有准确描述您希望输出的内容。我得到
错误:找不到函数“mdy\u hm”
,您的问题无法重现
flightDates <- mdy_hm(birds[,10])
flightYears <- as.factor(year(flightDates))
years <- (c(2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011))
strikesPerYear <- function(x){
strikes <- data.frame()
for(i in years){  
countStrikes <- length(which(x == i))
strikes <- data.frame(rbind(cbind("Year"=i, "NumStrikes"=as.numeric    (countStrikes)), strikes))
}
return(strikes)
}

strikesPerYear(flightYears)