reshape2::melt
を使用してロングフォームのデータフレームに時変予測子を追加しようとしていますが、もっと速い方法があるかどうかは疑問でした。reshape2を使用してワイドからロングフォームの2つのセットを溶かす
ここは、ワイドフォームのおもちゃデータです。結果変数(セッション1、セッション2、およびセッション3)の3つの測定値が、異なる訪問/時点で測定されます。これらの3回の訪問の間隔は参加者ごとに異なり、最終的にはこれらの違いをモデルに入れたいと思います。
id <- 1:10
group <- rep(c("A", "B"), times = 5)
session1 <- rnorm(10, 5, 1)
session2 <- rnorm(10, 3, 1)
session3 <- rnorm(10, 7, 2)
time1 <- rep(0, 10)
time2 <- rnorm(10, 24, 0.5)
time3 <- rnorm(10, 48, 0.5)
df <- data.frame(id, group, session1, session2, session3, time1, time2, time3)
ここでは、長い形式のデータフレームに変換したいと考えています。私はreshape2::melt
を使用します。私はどちらか、これを作成することができますので、のようなスコア周り:
library(reshape2)
dfLong <- melt(df, measure.vars = c("session1", "session2", "session3"), var = "session", value.name = "score")
それとも私は、時間値のまわりでそれを作成することができます。
dfLong2 <- melt(df, measure.vars = c("time1", "time2", "time3"), var = "time", value.name = "timeOut")
しかし、私は最終的に私はこの
dfLong$time <- rep(c("time1", "time2", "time3"), each = 10)
dfLong <- dfLong[,which(names(dfLong) %in% c("id", "group", "time", "session", "score", "timeOut"))]
dfLong
のようなものを探すためにデータフレームをご希望の二回溶融を行うと、この
dfLong$timeOut <- dfLong2$timeOut
ようopertationのいくつかの並べ替えを行うことなく、両方を行うことはできません
2つを溶かす方法はありますか列のを一度に設定しますか?あなたが今data.tablesと連携する方法を学習したくない場合は
'reshape(df、dir = 'long'、varying = lapply(c( 'セッション'、 '時間')、grep、names(df))) ' – rawr
http://stackoverflow.com/questions/37756389/r-convert-multiple-columns-into-single-columnまたはhttp://stackoverflow.com/questions/12466493/mapping-multiple-sets-of-columns-into-single-column-with-reshape-melt-recast -に – rawr