2

データは次のとおりです。

var1 <- c("A", "B", "K", "L", "G", "M", "M")
var2  <- c("B", "A", "K", "L", "H", "M", "M")
mydata <- data.frame (var1, var2)
     var1 var2
1    A    B
2    B    A
3    K    K
4    L    L
5    G    H
6    M    M
7    M    M

新しいカテゴリ変数を作成したいのですが、いずれかの行の値が等しい場合、それは同じカテゴリになります。したがって、行ごとの比較(すべての可能なことを行う必要があります)。

たとえば、mydata [1、]とmydata [2、]は等しいので、新しい変数カテゴリでは同じ値、たとえば1になります。私がやろうとしていることをここで重要なポイントにしています。var1、var2の順序は任意です。つまり、[A、B]は[var1、var2]の[B、A]と同じです。

簡単な質問で申し訳ありませんが、解決できませんでした。

編集:期待される出力

 var1 var2   caterory
1    A    B   1 
2    B    A   1
3    K    K   2
4    L    L   3
5    G    H   4
6    M    M   5
7    M    M   6
4

1 に答える 1

2
mydata$var3<-as.factor(apply(mydata,1,function(x){paste(x[order(x)],collapse='')}))

> mydata
  var1 var2 var3
1    A    B   AB
2    B    A   AB
3    K    K   KK
4    L    L   LL
5    G    H   GH
6    M    M   MM
7    M    M   MM

> str(mydata)
'data.frame':   7 obs. of  3 variables:
 $ var1: Factor w/ 6 levels "A","B","G","K",..: 1 2 4 5 3 6 6
 $ var2: Factor w/ 6 levels "A","B","H","K",..: 2 1 4 5 3 6 6
 $ var3: Factor w/ 5 levels "AB","GH","KK",..: 1 1 3 4 2 5 5
于 2012-07-17T12:21:44.857 に答える