我正在尝试使用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
我还试图'修剪'矢量和匹配索引,以防它出现空白问题,但这没有帮助。
感谢您的任何想法!
答案 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)?
谢谢!