私は私を夢中にさせているRに問題があります....
報告されたデータ(クリーニングと検証)に基づいて多くの条件変数を設定し、これに常に遭遇します。それは、条件文と組み合わせた置換ベクトルの長さと関係があります(私の貧弱な説明をすみません...)。
あなたによる例を実行させてください:
報告されたデータに基づいて、次のように「合成」文字変数を作成batch_id
しますpaste(var1, var2, sep="")
。ただし、var2
6文字の長さで、「B」で終わる場合のみ。
var2が短い場合(多くの場合)、または「B」で終わらない場合は、必要ですbatch_id <- NA
(欠落しています)
私は次のことを試しました:
data <- within(data, batch_id[nchar(data$var2) <6] <- NA)
data <- within(data, batch_id[nchar(data$var2) == 6 &
!substr(data$var2, 6, 6) == "B"] <- NA)
data <- within(
data, batch_id[nchar(data$var2) == 6 &
substr(data$var2, 6, 6) == "B"] <- paste(data$var1, data$var2, sep=""))
ただし、コードの最後の行にエラーメッセージが表示されます。
number of items to replace is not a multiple of replacement length
ああ、私はこのエラーメッセージが大好きです!! :)
両方の[...]
右側に同じ条件を設定することで実際に機能することを知っていますが、これを行うためのより良い(よりエレガントで後で読みやすい)方法が必要ですか? var1
var2