現在、R を使用して次の形式のテーブルデータを変換しています。
ID Code Condition WT
104 KEENTRAN CON4 .30577
. . . .
. . . .
リンクは、私のデータフレームをダウンロードしたい人なら誰でも機能するはずです。それ以外の場合は、サブセットを次に示します。
>dput(head(df))
structure(list(ID = c(104L, 368L, 10632L, 20385L, 24361L, 34378L
), Code = c("KEENTRAN", "ALEXEXPR", "MINNEXPMN", "JACKMOVWI",
"FREICOIN", "JBXEXPGA"), Condition = c("CON4", "CON4", "CON2",
"CON2", "CON6", "CON5"), WT = c(0.3057717456, 0.7909870604, 1,
1, 0.4301040524, 0.5977268575)), .Names = c("ID", "Code", "Condition",
"WT"), class = c("tbl_df", "data.frame"), row.names = c(NA, -6L
))
バックグラウンド
サンプル データは、Condition 変数の範囲が "CON1" から "CON6" までの長い形式になっています。IDとCodeの値が主キーになり、Conditionのレベルが列になるワイド形式にデータを再キャストしたいと考えています。値は、その特定の ID、コード、条件グループ (または、そのようなペアが存在しない場合はゼロ)のWTの最大値を取ります。これは、パッケージのdcast()
関数を使用して R で簡単に実現できます。reshape2
library(reshape2)
Result <- df %>% group_by(ID, Condition) %>%
summarise(value = max(as.numeric(WT))) %>%
dcast(ID ~ Condition)
Result[is.na(Result)] <- 0
このデータ操作手順を SQL Server で複製したいと考えていますが、最適な方法がわかりません。どんな助けや洞察も大歓迎です。