替换R中条件的值

时间:2016-11-20 15:27:35

标签: r dataframe missing-features

我希望在数据框中的两个属性中替换值。 CheckInCheckOut。 ' - '应替换为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
}
}

enter image description here

请向我介绍一些有关替换价值的有用资源或解决这些问题。

1 个答案:

答案 0 :(得分:1)

您可以通过矢量化方式实现此目的,而无需使用循环。

> 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>