清洁解决方案以避免选择引起的错误

时间:2013-06-14 11:11:17

标签: r

我尝试做类似

的事情
df[<very-long-and-complicated-selection>,]$foo <- "bar"

如果有与选择匹配的行,则效果很好。

如果没有,我收到错误消息

  

$<-.data.frame中的错误(*tmp*,“foo”,值=“bar”):
  替换有1行,数据有0

但是,我的代码是以不可能匹配的方式设计的。

是否有一个干净,简短的解决方案来避免这些(并且只有这些)错误?

2 个答案:

答案 0 :(得分:12)

使用

df[<very-long-and-complicated-selection>, "foo"] <- "bar"

即,将赋值转换为数据帧,将其视为二维对象,而不是列表。

答案 1 :(得分:0)

使用dplyr

d %>% dplyr::mutate(n = ifelse(c == 'a', 5, n))