我写了一个函数来回报每年有多少次鸟击。罢工的年份和次数都是正确的,但我数据框的第一列有什么问题?为什么最后一排打击NA NA?
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
答案 0 :(得分:0)
第一列是输出rownames
的{{1}}。看起来您有data.frame
作为输入(matrix
编号为:1,2,3,4,5,)并且不知何故您将rownames
转换为字符,或者在从rownames
转换为matrix
后,他们将其更改为字符,并且您的输出随机排列data.frame
。
最后一行可能是rownames
,NA
因为你的作品中有一行
NA
答案 1 :(得分:0)
我将strikes&lt; - c(NA,NA)改为strikes&lt; - data.frame(),这给了我正在寻找的数据帧输出。
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)