私はデータフレームtab1
を持っています。以下のような結果を含む10行50列を想像してください。データフレームに適用されるgrep +ループ
tab1
のすべてのフィールドで文字列morse
を検索したいとします。私はまた、すべての行に対してこれを実行したい。 私は実際には以下のコードで動作結果を得るのですが、私は、コードの下に置かれている、私は理解していない2つのこと
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を適用する'のためのグーグルがあなたを助けるかもしれない。答えの横のチェックマークをクリックすると、最も役に立つ回答を受け入れることができます。 –