给出一个小数据集,如下所示:
df <- structure(list(date = c("2021-09", "2021-10", "2021-11", "2021-12",
"2021-06", "2021-10"), act_direction = c("decrease", "increase",
NA, NA, "unchanged", "unchanged"), pred_direction = c(NA, "decrease",
NA, NA, "decrease", "increase"), direction_acc = c("true", "-",
"-", "true", "false", "false")), class = "data.frame", row.names = c(NA,
-6L))
df:
date act_direction pred_direction direction_acc
1 2021-09 decrease <NA> true
2 2021-10 increase decrease -
3 2021-11 <NA> <NA> -
4 2021-12 <NA> <NA> true
5 2021-06 unchanged decrease false
6 2021-10 unchanged increase false
我尝试更新
direction_acc
基于
act_direction
列,更具体地说,如果
act_direction==unchanged
,然后我想更新到的内容
方向(附件)
到
true
,忽略其原始值。
预期结果:
date act_direction pred_direction direction_acc
1 2021-09 decrease <NA> true
2 2021-10 increase decrease -
3 2021-11 <NA> <NA> -
4 2021-12 <NA> <NA> true
5 2021-06 unchanged decrease true
6 2021-10 unchanged increase true
我使用了下面的代码,我没有发现任何错误,但它返回的结果超出了预期,因为其他值
方向(附件)
改为
NA
s:
df %>%
# mutate_all(na_if, '') %>% # I will replace empty cell '' to NA as example data
mutate(direction_acc = ifelse(act_direction == 'unchanged',
'true',
as.character(direction_acc)))
结果:
date act_direction pred_direction direction_acc
1 2021-09 decrease <NA> true
2 2021-10 increase decrease -
3 2021-11 <NA> <NA> <NA>
4 2021-12 <NA> <NA> <NA>
5 2021-06 unchanged decrease true
6 2021-10 unchanged increase true
所以我的问题是为什么
行动方向
具有
NA
s
方向(附件)
也成为
NA
s、 我们如何才能正确地做到这一点?