2012-11-24 29 views

回答

0

您可以直接将一个因子强制转换为数字向量:as.numeric(factor(x))。如果默认级别排序不符合您的要求,请将“levels”参数显式指定为“factor”。

3

我怀疑你真的需要做到这一点,但这里是如何(他们假设的因素):

numMF <- as.numeric(MFfac) -1 # will be 0 for F and 1 for M in the usual sorting of factor levels 

如果他们真的特征向量,然后环绕,我认为是一个因素MFfac因素。或者:

numMF <- match(MFvec, c("Female", "Male")) -1 

match(c("Female","Male", "Female"), c("Female", "Male")) 
[1] 1 2 1 

匹配函数是数据转换的重要资源。

+0

正确的'match';当这里只有两个可能的值时,一个简单的'==':'ifelse(df $ Sex ==“Male”,1,0)'或'as.numeric(df $ Sex ==“Male” )'。 – flodel

0

将因子转换为指标变量的一般方法是使用model.matrix函数。但大多数情况下,您不需要这样做,因为建模功能(如lm)将为您调用model.matrix