Mar*_*ijn 4 if-statement r reference
我想在另一行的同一列中引用一个值.我有一栏有开始和停止时刻.我想添加一个列,指示机器是否正在运行.
这是数据的样子:
c("", "", "start", "", "", "stop", "", "", "start", "stop", "")
Run Code Online (Sandbox Code Playgroud)
输出应如下所示:
[1,] "" ""
[2,] "" ""
[3,] "start" "running"
[4,] "" "running"
[5,] "" "running"
[6,] "stop" "running"
[7,] "" ""
[8,] "" ""
[9,] "start" "running"
[10,] "stop" "running"
[11,] "" ""
Run Code Online (Sandbox Code Playgroud)
在第二栏中我想做:
我怎么能用R优雅地做到这一点?
非常感谢您提前输入!
您可以使用cumsum
检查更多"开始"值而不是"停止"值来了解进程是否正在运行:
res <- cbind(myvec, c("", "running")[(cumsum(myvec=="start") > cumsum(myvec=="stop")) + 1])
Run Code Online (Sandbox Code Playgroud)
之后可以为"停止"的行添加"运行":
res[res[, 1]=="stop", 2] <- "running"
res
# myvec
# [1,] "" ""
# [2,] "" ""
# [3,] "start" "running"
# [4,] "" "running"
# [5,] "" "running"
# [6,] "stop" "running"
# [7,] "" ""
# [8,] "" ""
# [9,] "start" "running"
#[10,] "stop" "running"
#[11,] "" ""
Run Code Online (Sandbox Code Playgroud)
数据
myvec <- c("", "", "start", "", "", "stop", "", "", "start", "stop", "")
Run Code Online (Sandbox Code Playgroud)