【发布时间】:2021-03-18 15:09:59
【问题描述】:
我有一个数据框,其中包含一个包含二进制变量(指向或广泛)的列。为了进行计算,我需要将它们替换为 0 或 1。我想编写一个 for 循环来为我执行此操作。
我的代码:
binary_To_Number<-function(df)
{
for(i in df)
{
if(i=="pointed")
{
i<-1
}
else if(i=="broad")
{
i<-0
}
else if(is.na(i))
{
print("NA")
}
else
{
}
}
}
binary_To_Number(town$shape)
我尝试使用这段代码。我的第一个问题是我不知道如何保存结果。所以我的代码暂时更改了 i 但不会将其保存在 df.xml 中。我知道你可以创建一个空的存储向量来存储结果,但是我可以立即替换我的 df 中的变量吗?
第二个问题是,如果涉及到包含 NA 的 i,我的代码会停止并给我一条错误消息。
Error in if (i == "pointed") { : missing value where TRUE/FALSE needed
有什么我可以做的,还是我需要先用占位符替换 NA?
【问题讨论】:
-
R 的优点是已经内置了修改向量的方法,例如
town$shape[town$shape=="pointed"] <- 1.