我有數據框tab1
- 想象它有10行和50列,包括下面的工作結果。grep +循環應用於數據幀
我想在tab1
的每個字段中搜索字符串morse
。我也想爲每一行做這個。 我的確得到與下面的代碼工作的結果,但有兩件事情我不明白,我已經把代碼的下方
tab1$str<-NA
for(i in 1:10) {
str<-grep("morse", tab1[i,], ignore.case=TRUE)
tab1$str[i] <- str
}
Error in tab1$str[i] <- str : replacement has length zero
tab1$str
[1] 44 NA NA NA NA NA NA NA NA NA
##the first row, column44 did indeed contain the string, whilst the others did not.
問題:
- 爲什麼需要第一行?
tab1$str <- NA
。如果沒有這個, 結果是錯誤的,即使它們不包含字符串morse
,矢量tab1$str
的每個值都是 44。 - 爲什麼我會收到錯誤消息,即使結果是 正確?
通常,我不是一個編碼器,並認爲這應該是簡單的,如果我遞歸地指定行。
非常感謝您的幫助。
......這正是我期待做的 - 我還沒有完全理解它,但它得到了我正在尋找的結果。非常感謝,抱歉,還沒有足夠的積分來回答你的答案。 – James
很高興提供幫助。使用'應用函數r'搜索可能會對您有所幫助。您仍然可以通過點擊答案旁邊的複選標記來接受最有幫助的答案。 –