根据条件替换 R 中的值
replace values on condition in R
我想替换数据框中两个属性的值。 CheckIn
和 CheckOut
。在缺少这两个属性值之一的情况下,'--' 应替换为 NA。我试图放置一些条件逻辑并应用函数但失败了。最后我尝试使用 for 循环。
for(i in length(Empl.A)){
if((Empl.A$CheckIn[i] == '--') & (Empl.A$CheckOut[i] == '--'))
{
Empl.A$CheckIn[i] <- NA
Empl.A$CheckOut[i] <- NA
}
}
请向我推荐一些有关替换值或解决此类问题的有用资源。
您可以通过矢量化方式实现这一点,而无需诉诸循环。
> xy <- data.frame(a = 1:3, ci = c("a", "--", "--"), co = c("b", "--", "--"))
> xy
a ci co
1 1 a b
2 2 -- --
3 3 -- --
> xy[xy$ci == "--" & xy$co == "--", c("ci", "co")] <- NA
> xy
a ci co
1 1 a b
2 2 <NA> <NA>
3 3 <NA> <NA>
我想替换数据框中两个属性的值。 CheckIn
和 CheckOut
。在缺少这两个属性值之一的情况下,'--' 应替换为 NA。我试图放置一些条件逻辑并应用函数但失败了。最后我尝试使用 for 循环。
for(i in length(Empl.A)){
if((Empl.A$CheckIn[i] == '--') & (Empl.A$CheckOut[i] == '--'))
{
Empl.A$CheckIn[i] <- NA
Empl.A$CheckOut[i] <- NA
}
}
请向我推荐一些有关替换值或解决此类问题的有用资源。
您可以通过矢量化方式实现这一点,而无需诉诸循环。
> xy <- data.frame(a = 1:3, ci = c("a", "--", "--"), co = c("b", "--", "--"))
> xy
a ci co
1 1 a b
2 2 -- --
3 3 -- --
> xy[xy$ci == "--" & xy$co == "--", c("ci", "co")] <- NA
> xy
a ci co
1 1 a b
2 2 <NA> <NA>
3 3 <NA> <NA>