-1

私はコーディングにまったく慣れていないので、これが非常に簡単に解決または見つけられるはずである場合は、ご容赦ください。おそらく、これまで誰も説明していないほど単純であるか、適切なキーワードで検索していないだけです.

データセットに、可能なすべての組み合わせで文字 f、n、i を含む列があります。ここで、f または n のいずれかを含み、両方を含む行のみを検索したいと考えています。つまり、f、fi、n、ni のいずれかになります。次に、これらの 2 つの行セットを boxplot で比較したいと思います。したがって、理想的には 2 つのボックスが必要です。1 つはグループ f に属するすべてのデータ ポイント (fi を含む) を含み、もう 1 つはグループ n に属するすべてのデータ ポイント (ni を含む) を含みます。

私のデータセットの例:

df <- data.frame(D = c("f", "f", "fi", "n", "ni", "ni", "fn", "fn"), y = c(1, 0.8, 1.1, 2.1, 0.9, 8.8, 1.7, 5.4))

   D   y
1  f 1.0
2  f 0.8
3 fi 1.1
4  n 2.1
5 ni 0.9
6 ni 8.8
7 fn 1.7
8 fn 5.4

今私が取得したいのは、このサブセットです:

   D   y
1  f 1.0
2  f 0.8
3 fi 1.1
4  n 2.1
5 ni 0.9
6 ni 8.8

そして、どういうわけか、ボックスプロットにプロットするために、1,2,3 と 4,5,6 をそれぞれグループに入れます。

これまでのところ、次のコードを使用して、f または n のいずれかのエントリのみを含むサブセットを取得することに成功しましたが、fi、ni などは必要ありません。

df2<-df[df$D==c("f","n"),]

そして、f と n を持つすべての異なるグループを持つサブセットを作成する場合:

df2 <- df[grepl("f", df$D) | grepl("n", bat.df$D),]

「排他的または」演算子 xor について読みましたが、次のように使用しようとすると:

df2 <- bat.df[xor(match("n", df$D), match("f", df$D)),]

NAでいっぱいのデータフレームが得られるだけです。しかし、それが機能したとしても、f、n、fi、ni の 4 つのグループで箱ひげ図を作成することしかできないと思います。では、そのコードを機能させるにはどうすればよいでしょうか。

これが最初の質問としてはひどすぎないことを願っています! これにあまりにも多くの時間を費やした後、私はちょっと目がかすんでいます。私の問題について、どこで答えを探すべきか、または質問を改善する方法について、どんな助けも大歓迎です!

4

2 に答える 2