2017-12-29 16 views
0

私は8列と10,000行を含むデータフレームを持っています。私はランダムに(例えば1A 2Aとの)値がTRUEある「1」と「2」の列のすべての組み合わせのための3行をサンプリングしたいブール条件付きランダムサンプルデータフレーム

enter image description here

私の最初の試みは、次のような次のとおりです。

df[sample(nrow(df[df$1a == TRUE & df$2a == TRUE,]), 3), ]

出力を与えます。

 1a 1b 1c 1d 2a 2b 2c 2d 
1136 FALSE FALSE FALSE TRUE FALSE TRUE FALSE FALSE 
1021 TRUE FALSE FALSE FALSE FALSE FALSE TRUE FALSE 
589 FALSE TRUE FALSE FALSE FALSE TRUE FALSE FALSE 

これは、1aと2aに対してFALSEの行を選択しています。私は間違って何をしていますか?どうもありがとうございました。そのようなケースが存在しないため

+2

私には明らかではないが。たぶん 'df [sample(df $ 1a == TRUE&df $ 2a == TRUE)、3)、]'を試してみてください。 – nicola

+0

これは本当にありがとうございました! – Workhorse

答えて

2

コード

df[df$1a == TRUE & df$2a == TRUE,] 

のこの部分は、0行を返すべきです。

あなたのデータフレームは、それらの10行が文字としてTRUEを使用しようとするよりも多く持っている場合:

df[sample(nrow(df[df$1a == "TRUE" & df$2a == "TRUE",]), 3), ] 
+0

"TRUE"を使用して、それは常に小さなものです、ありがとう! – Workhorse