繁体   English   中英

替换数据框中的值,直到匹配给定值

[英]Replace values in a dataframe, until it matches a given value

我有数百个具有以下结构的数据框:

df <- data.frame(yr=seq(0,20,1), op=c(0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,10))

我想自动替换op列的初始部分,因为该序列将从向量的末尾继续,但一直到第二个0值为止。

结果应该是这样的:

df.result <- data.frame(yr=seq(0,20,1), op=c(11,12,13,14,15,16,17,18,19,20,0,1,2,3,4,5,6,7,8,9,10))

它必须是动态的,因为顺序都不同。 使用无需循环的功能快速完成此操作的任何技巧?

提前致谢!

这是一种方法:

transform(df, op = replace(op, cumsum(!op) < 2, seq(which(!op)[2] - 1) + tail(op, 1)))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM