【发布时间】:2021-03-31 16:37:11
【问题描述】:
我有一个包含几个字符列和许多数字列的数据框。我需要用1替换所有大于1的列中的所有数值,而不修改字符列。 我使用 mutate_if 来实现我的目标,但我面临的问题是它会自动舍入数据,我不希望这样。我怎样才能避免四舍五入? 这是我的示例代码:
mtcars$TEXT <- rownames(mtcars)
mtcars %>% mutate_if(is.numeric, ~4.00 * (. > 4))
如果您打印它,您会注意到所有值现在都是 4 或 0。 我真的很困惑,不知道为什么。 谢谢
【问题讨论】:
-
使用
ifelse:mutate_if(is.numeric, ~ifelse(. > 1, 1, .)) -
你为什么使用 4 ?问题是将大于 1 替换为 1,但您正在做其他事情。
-
见
pmin...... -
@bouncyball 您的解决方案效果很好。谢谢