gpt4 book ai didi

R:ifelse 条件 -> 替换为条件为真的最后一个值

转载 作者:行者123 更新时间:2023-12-04 11:28:57 25 4
gpt4 key购买 nike

假设我有这个输入:

input=data.frame(x=c(2,3,4,5,6,7), y=c(5,5,4,4,3,5))

x y
1 2 5
2 3 5
3 4 4
4 5 4
5 6 3
6 7 5

现在,如果 y < 5,我想替换 x 的值。在这种情况下,我想获取最后一个 x 值,其中 y => 5

是这样的:

attach(input)
xnew=ifelse(y < 5, "last x value for which y=> 5", x)

例如,输出应如下所示:

   xnew y
1 2 5
2 3 5
3 3 4
4 3 4
5 3 3
6 7 5

我必须用什么来替换 "last x value for which y=> 5" 才能工作?

提前致谢!

最佳答案

我会尝试 zoo 包中的 na.locf。使用评论中的输入

input=data.frame(x=c(2,3,4,5,6,7,8,9,10,11,12), y=c(5,5,4,4,3,5,3,5,3,3,5)) 
input[input$y < 5, "x"] <- NA
library(zoo)
input$x <- na.locf(input$x)
input
# x y
# 1 2 5
# 2 3 5
# 3 3 4
# 4 3 4
# 5 3 3
# 6 7 5
# 7 7 3
# 8 9 5
# 9 9 3
# 10 9 3
# 11 12 5

关于R:ifelse 条件 -> 替换为条件为真的最后一个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25713494/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com