R替换命令错误

时间:2014-11-19 00:38:38

标签: r replace

我正在尝试使用replace命令将因子级别替换为关联值。我的数据框中有3个变量,我正在尝试这样做,2个工作完美,但第三个是给我以下错误:

警告讯息:

In `[<-.factor`(`*tmp*`, list, value = c(11.76, 13.56, -1.64, -14.04,  :
  invalid factor level, NA generated

为什么会有这样的想法?

数据:

       Outfit Wearer Color Score
 1       E      1     R    64
 2       E      2     G    75
 3       E      3     W    71
 4       E      4    Bk    93
 5       E      5    Bu    86
 6       H      1     W    90

代码:

   new.dat$Color <- replace(new.dat$color, col.m[,1], col.m[,3])
   new.dat$Wearer <- replace(new.dat$Wearer, wear.m[,1], wear.m[,3])
   new.dat$Outfit <- replace(new.dat$Outfit, out.m[,1], out.m[,3])

最后一个,Outfit不起作用。 这就是out.m的样子:

     Group.1    x    dev
 1          B 52.0 -14.04
 2          E 77.8  11.76
 3          H 79.6  13.56
 4          J 56.4  -9.64
 5          S 64.4  -1.64

我还试图'修剪'矢量和匹配索引,以防它出现空白问题,但这没有帮助。

感谢您的任何想法!

1 个答案:

答案 0 :(得分:0)

我发现以下帖子中有以下内容。我改变了我对这个问题的看法,这就是为什么我之前没有发现这个帖子。

以下是有效的:

 new.dat[,"col.dev"]<-col.m[new.dat[ ,"Color"], "dev"]
 new.dat[,"out.dev"]<-out.m[new.dat[ ,"Outfit"], "dev"]
 new.dat[,"wear.dev"]<-wear.m[new.dat[ ,"Wearer"], "dev"]

来自这篇文章:

How to join (merge) data frames (inner, outer, left, right)?

谢谢!

相关问题