大きなデータセット、複数の異なるタイプのデータが列にマージされる場所、列名の一部のデータを「整理」しようとしています。これはa common scenario in biological datasetです。複数の列でdata.tableをグループ化するときに出力に列を保持する方法
私のデータテーブルには、平均値に崩壊したい反復測定値があります。データを整然としたフォーマットに変換すると、これらのレプリケート値は追加の行になります。私はいくつかの列で/グループを集約し、反復試験の平均値を計算しようとした場合:
collapsed.data <- tidy.dt[, mean(expression, na.rm = T), by=list(Sequence.window,Gene.names,ratio,enrichment.type,condition)]
を私はby
文で使用される唯一の列があり、列V1
などmean(expression)
と続く結果テーブルを取得します。それ以外の(変更されていない)列もすべて取得できますか?
次のように私が達成しようとしているものを示したミニマリストの例は次のとおりです。
library(data.table)
dt <- data.table(a = c("a", "a", "b", "b", "c", "a", "c", "a"), b = rnorm(8),
c = c(1,1,1,1,1,2,1,2), d = rep('x', 8), e = rep('test', 8))
dt[, mean(b), by = list(a, c)]
# a c V1
#1: a 1 -0.7597186
#2: b 1 -0.3001626
#3: c 1 -0.6893773
#4: a 2 -0.1589146
あなたが列d
とe
を見ることができるように削除されます。
あなたもそれらを要約する必要があります。 – Sotos
これは、data.tableがどのファイルをどのディレクトリに格納するかを知ることができないため、 'dt [、(head、d、1)、head(e、1) 'd'と' e'の値を取得したいとします。つまり、 'a'と' b'の組み合わせごとに 'd'と' e'に複数の値を設定できます。あなたが返すものについて具体的にする必要があります –
通常、私は 'by'引数に保存したい列を追加します。 – BenBarnes