这个问题似乎太简单了,甚至不能放在这里;但我找不到可行的解决方案。我有一个3列的数据框(df
);其中一个是具有3个等级(“蓝色”,“红色”和“黑色”)的因子列(df$Colors
)。在另一列(df$Outliers
)中有一些是“NA”的数字值。我想添加另一列(如df$NewColors
),类似于df$Colors
,其中“NA”为df$Outliers
,df$NewColors = "Orange"
。 我加入另外的电平如下所示:对于一列中的NA;不能改变另一列的因子水平
> levels(df$Colors) <- c(levels(df$Colors), "Orange")
但是新添加的列似乎它should.Also它的因素生成的整数值待使用旧的“颜色”值而不是通过“橙色”替换它的df$Colors
但我想保留旧的分类变量。 我使用的代码如下:
>levels(df$Color) <- c(levels(df$Color),"Orange")
> for (i in 1:nrow(df)) {
df$NewColors[i] <- ifelse (is.na(df$Outliers[i]), "Orange", df$Colors[i])
}
我要去哪里错了?
这里是样本数据:
> BodyLength <- rep(seq(1,9),2)
> Colors <- rep(c("Black","Blue","Red"),6)
> Outliers <- c(seq(1,8),"NA",seq(1,8),"NA")
> df <- data.frame(BodyLength,Colors,Outliers)
替换为“NA”是NA不同。 –