2017-09-13 6 views
0

これまでのところこのコードがあります。私はいくつの変数がそれらに重複した文字を含んでいるのか見ようとしています。たとえば、変数1に{a、b、c、c、d}がある場合は、これをtrueに戻したいと考えています。 Rのループのためにこれまで行ったことはありません。どんな助け?行列の各変数に重複する値を数えるループ

wordSoup<-replicate(100,(replicate(5,sample(letters,1)))) 
notUnique=0 

for (i in wordSoup) { 
    if (anyDuplicated(wordSoup[,i])==1) { 
    notUnique=notUnique+1 
    } 
} 
+1

ここでは、ループ、重複、およびRに関連する質問はまだ検索していませんか? – stealththeninja

答えて

1

ここにはforループのないオプションがあります。列番号と同じ長さの論理ベクトルを返します。 TRUEは重複を意味し、FALSEはすべての文字がその列で一意であることを意味します。

apply(wordSoup, 2, function(x) any(table(x) > 1)) 

もう一つのアイデアは、独自の文字を取得し、独自の文字の数を確認するためにlengthを使用するuniqueを使用しています。 5より小さい場合は、重複があり、TRUEを返すことを意味します。

apply(wordSoup, 2, function(x) length(unique(x)) < 5) 
+0

ありがとうございます!それは間違いなく機能します。私が想定している適用機能を研究しています。 – Austin

+0

@Austin私は助けてうれしいです。投稿を別の方法で更新しましたが、それでも 'apply'が使用されています。関数。 – www

+0

ああ大丈夫、それは私にとってもっと直感的です。私はそれに行くでしょう。しかし両方とも意図を満たしている。 – Austin

関連する問題