r中

2012-07-17 16 views
2

这里创建从现有变量新的变量类是数据:r中

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 

回答

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 
+0

感谢;我试图通过VAR3 oder,但mydata [,命令(mydata $ var3)]不工作...有办法输出为1号:n级而不是charectors,只是下游分析的易行性 – shNIL 2012-07-17 13:07:58