私は以下のクエリを書いて分析のためのいくつかのサンプル手段を勉強しましたが、この作業はうまくいきました。しかし、dbGetQueryの制限文とともに、"",; sep=""
の使用を理解する必要があります。dbGetQuery内のsql in()クエリの文字列を準備する
df <- data.frame(Sample.Num = integer(),
Sample.Mean = integer(),
quant.01 = integer(),
quant.05 = integer(),
quant.10 = integer(),
quant.25 = integer(),
quant.50 = integer(),
quant.75 = integer(),
stringsAsFactors = FALSE)
df[1,] <- NA
for (i in 1:500){
sdf <- dbGetQuery(con,"select col11,col23,col30
from schema.db.name
where col1 in ('value1')
and col2 in ('(v3) - value3')
and col3 in ('v- value4')
order by random()*600000 limit 100")
meansample <- mean(sdf$mileage,na.rm = TRUE)
quant.01 <- quantile(sdf$mileage,na.rm = TRUE,probs = .01)
quant.05 <- quantile(sdf$mileage,na.rm = TRUE,probs = .05)
quant.10 <- quantile(sdf$mileage,na.rm = TRUE,probs = .10)
quant.25 <- quantile(sdf$mileage,na.rm = TRUE,probs = .25)
quant.50 <- quantile(sdf$mileage,na.rm = TRUE,probs = .50)
quant.75 <- quantile(sdf$mileage,na.rm = TRUE,probs = .75)
dbDisconnect(con)
問題:
Col1,2 & 3は、文字値を持っています。今度は、col2の7つの値とcol3の9つの値すべてについて同じことを確認する必要があります。特定の値のcol1,2,3を使用するたびに、ループを終了して2番目の値で再起動する前に、データフレームに格納していくつかの操作を実行する必要があります。
したがって、これは勉強のために呼び出します。Add a dynamic value into RMySQL getQuery
私もgsub
とshQuote
を勉強しました。私は'", df[i], "';", sep = ""
の使用を、limitステートメントとともにいくつかの組み合わせにもかかわらず、概念化することができません。ローカルデータベースであれば、ループを実行するためにdplyr
パッケージを使用できました。私はseq_along()
が数値を必要としていることを理解しており、in()クエリーの中で正しい '正しい値'を設定するループを通過させるためです。私はpaste0を試して、collapse = "、" arguementsと一緒に引数を貼り付けましたが、助けにはなりませんでした。 私はlapply
を以下のポストから試しましたが、in()クエリの内部では動作しません。
How to do dbGetQuery for loop in R
(V3) - VALUE3、(V1) - 値1等COL内の実際の要素です。これはコードと属性col2、col3などの記述の組み合わせです。
'COL2' ...これは「WHERE IN」条件としては意味をなさないので、あなたが思うように振る舞いません。 –
@Tim Biegeleisen明確に投稿しないことをお詫び申し上げます。 where句で使用されるin()文を準備している間に、あなたが私に "、df [i]、" '; "、sep =" "の使用を説明できる方法はありますか? –
' col2'文字列 '(v3) - value'に対して文字通り条件が正しいが、単一の値で' WHERE IN'を使う必要はありません。代わりに 'WHERE col2 = '(v3) - value' ' –