現在closest.labels
、次のデータを含むというベクトルがあります。
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
[1,] 2 2 2 2 2 2 2 2 2 2
[2,] 0 0 0 0 0 0 0 0 0 0
[3,] 9 9 9 9 9 9 9 7 7 4
私がやりたいのは、行データと、3つ以上の一意の値があるその行のインデックスを返すことです。上記の例では、これは3行目のみになります。apply
これまでのところ、私が作成した関数を使用して部分的に成功しています。下記参照:
colCountFx <- function(col){
result <- subset(list(index=col,count=length(unique(col))),length(unique(col))>2)
return(result)
}
apply(closest.labels,1, colCountFx)
私の問題は、これにより、最初の2つのレコードでも空の行のように見えるものが返されることです。出力:
[[1]]
named list()
[[2]]
named list()
[[3]]
[[3]]$index
[1] 9 9 9 9 9 9 9 7 7 4
[[3]]$count
[1] 3
現在返されている行に対して何も返されないようにするには、何を変更する必要がありnamed list()
ますか?また、私はRにかなり慣れていないので、これを行うためのより良い方法があると思われる場合は、私もそれを受け入れます。