我尝试做类似
的事情df[<very-long-and-complicated-selection>,]$foo <- "bar"
如果有与选择匹配的行,则效果很好。
如果没有,我收到错误消息
$<-.data.frame
中的错误(*tmp*
,“foo”,值=“bar”):
替换有1行,数据有0
但是,我的代码是以不可能匹配的方式设计的。
是否有一个干净,简短的解决方案来避免这些(并且只有这些)错误?
答案 0 :(得分:12)
使用
df[<very-long-and-complicated-selection>, "foo"] <- "bar"
即,将赋值转换为数据帧,将其视为二维对象,而不是列表。
答案 1 :(得分:0)
使用dplyr:
d %>% dplyr::mutate(n = ifelse(c == 'a', 5, n))