如何用库重新编码(memisc)?

时间:2014-08-29 13:10:13

标签: r

我刚刚创建了一个样本,它提供了我的数据结构:

     a<-c(1,2,3,4,5,6,7,8,9,10,1,2,3,4,2,3,5,4,5,6)
     b<-c(1,2,3,4,4,1,2,3,9,7,2,3,6,1,9,3,1,5,7,8)
     c<-c(1,1,1,0,0,1,0,1,0,0,0,0,0,1,1,1,1,0,1,0)
     d<-c(10,9,7,10,11,2,3,3,1,1,2,2,2,2,2,2,2,2,2,3)
     e<-c(1,1,1,1,2,2,2,2,2,3,3,3,3,3,4,4,4,4,4,5)
     df<-data.frame(a,b,c,d,e)

     library(memisc)

      df_p1<- within(df,{
                        e<-recode(e,
                                    c(1,2,3)->"West",
                                    c(4,5)->"East")})

我只想将1,2,3行重新编码为West,将4,5行重新编码为East。我肯定知道我在一周前运行了这个rec​​ode命令并且它工作得很好。现在我收到了错误。

 Error in `[<-.data.frame`(`*tmp*`, nl, value = list(East = c(4, 5), West = c(1,  : 
        replacement element 2 has 3 rows, need 20
        In addition: Warning message:
        In if (as.factor.result) { :
        the condition has length > 1 and only the first element will be used

我刚才发现了问题。我不知道这是否是常识,但我不知道。只有当我将库(car)添加到我的脚本时才会出现此问题。我想使用库(memisc)和库(car)可能会出现一些问题。使用它们,您将收到错误消息。

1 个答案:

答案 0 :(得分:1)

如何稍微修改它? 使用汽车库而不是memisc

require(car)
df_p1<- within(df,{
  e<-recode(e, "c(1,2,3)='West'; c(4,5)='East'")})