1

論理条件でデータをサブセット化するにはどうすればよいですか。

以下のようなデータがあるとします。すべての動物が FCR レコードを持っているという最初の条件でデータセットをサブセット化し、次にすべての動物を同じ囲いに入れ、これらの動物を新しいデータセットに入れたいと思います。

animal  Feed    Litter  Pen 
1   0.2 5   3
2   NA  5   3
3   0.2 5   3
4   0.2 6   4
5   0.3 5   4
6   0.3 4   4
7   0.3 5   3
8   0.3 5   3
9   NA  5   5
10  NA  3   5
11  NA  3   3
12  NA  3   5
13  0.4 7   3
14  0.4 7   3
15  NA  7   5
4

2 に答える 2

2

「FCRレコード」(あなたの質問)は「フィード」に関連していると思います。次に、質問を正しく理解していれば、次のことができます。

split(df[complete.cases(df),], df[complete.cases(df), 4])
# $`3`
#    animal Feed Litter Pen
# 1       1  0.2      5   3
# 3       3  0.2      5   3
# 7       7  0.3      5   3
# 8       8  0.3      5   3
# 13     13  0.4      7   3
# 14     14  0.4      7   3
# 
# $`4`
#   animal Feed Litter Pen
# 4      4  0.2      6   4
# 5      5  0.3      5   4
# 6      6  0.3      4   4

上記でcomplete.casesは、不完全な観測を削除します。特定の変数の引数を一致させる必要がある場合は、df[!is.na(df$Feed), ]代わりに のようなものを使用できますcomplete.cases。次に、で分割しsplitたリストを作成します。data.framesPen

于 2012-08-01T09:18:24.583 に答える
1
# all animals with Feed data
df[!is.na(df$Feed), ]
# all animals from pens with at least one animal with feed data in the pen
df[ave(!is.na(df$Feed), df$Pen, FUN = any), ]
于 2012-08-01T12:19:07.260 に答える