【发布时间】:2019-09-11 18:38:14
【问题描述】:
我想将数据框的 NA 值转换为“NA”(两个字符)。我应用了以下代码:
df2[is.na(df2)]<-"NA"
但是,这种方法将所有值的数据类型转换为字符类型。 这是一个例子:
> sd<-c(1,2,3,NA)
> sd
[1] 1 2 3 NA
> sd[is.na(sd)]<-"NA"
> sd
[1] "1" "2" "3" "NA"
我想要的是保持非 NA 值的数据类型不变。请帮忙,谢谢。
【问题讨论】:
-
NA不应被引用。然后它变成一个字符串不清楚你为什么要这样做。列应保持原样,而不是对"NA"进行任何更改@ -
当您将向量中的某些元素更改为字符时,该向量中的所有元素都必须是字符类型,因为一个向量不能有两种不同的类型。为什么需要
NA成为"NA"?也许我们可以用另一种方式解决这个问题。 -
@iod。感谢您的回答。我这样做的原因是我使用
if语句为不同的条件生成不同的输出。 (例如检查两个值是否相同if (df2$i > df2$h) {df2$h<-"smaller"} )但是,如果一个值是NA,则无论另一个值是什么,它都会返回NA作为结果。
标签: r