2016-06-07 21 views
-1

我正在嘗試運行一個循環,將月份作爲輸入。此外,我想知道某個特定主題出現在特定日期的次數。我試圖這樣做的方式如下?循環顯示月份列表中的輸入R

for (i in c("January", "February", "March", "April", 
       "May", "June", "July", "August", "September", "October", "November", "December")){ 
    print(length(which(data$Date == "i 2005" & data$Maxtopic == 3))) 
} 

儘管如此,我得到0爲所有日期的輸出。任何想法爲什麼?

乾杯,

+3

試試'data $ Date == sprintf(「%s 2005」,i)'。您嘗試搜索文字字符串'「i 2005」'。 PS:有可能比循環更容易和更有效的解決方案。很難說沒有一個可重複的例子。 – Roland

+0

非常感謝。你想把它作爲獲得積分的答案嗎?乾杯 –

+2

你真正的問題可能通過使用'table(gsub(「2005」,「」,data [data $ Maxtopic == 3,「Date」],fixed = TRUE))''更好地解決。 – Roland

回答

3

嘗試data$Date == sprintf("%s 2005", i)。您嘗試搜索文字字符串「i 2005」。

但是,table函數是爲此設計的。使用gsub除去年:

table(gsub(" 2005", "", data[data$Maxtopic == 3, "Date"], fixed = TRUE)) 

PS:接下來的時間請提供一個可重複的例子,使開發和解決方案的測試。