我有一个带有df$col的dfs,我想用一个更高的数字本身替换所有的1,比如2111112变成222222,311113变成33333等等,并保持整体模式,以及0等。所以只需要在确切的位置将1替换为更高的数字。举个例子:
data <- data.frame(col = c(0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 2, 1, 1, 1, 1, 2, 0, 0, 0, 0, 3, 1, 1, 3, 0, 0, 0, 0, 4, 1, 1, 1, 1, 4, 0, 0, 0, 5, 1, 1, 1, 1, 1, 5, 0, 0, 0)))
desired.outut.data <- data.frame(col = c(0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 3, 3, 3, 3, 0, 0, 0, 0, 4, 4, 4, 4, 4, 4, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0)))
字符串
在不同的dfs中,较高数字之间的1的数量可能会改变。提前感谢!
4条答案
按热度按时间nkoocmlb1#
我相信有更优雅的方式:
字符串
结果
型
q43xntqr2#
下面是
fill
的一个例子:个字符
9gm1akwq3#
我们可以通过为值
x != 0
创建的索引进行拆分,并使用ave
将max
用于位置。字符串
型
s5a0g9ez4#
类似于jay.sf的方法,但翻译成整洁,也许更容易阅读
字符串
创建于2023-12-11使用reprex v2.0.2