我有一个由"Y"和"N"组成的向量x.
> x
[1] Y N N N N N N N N N N Y N N N N
Run Code Online (Sandbox Code Playgroud)
我想把它拆分成
> x1
[1] Y N N N N N N N N N N
Run Code Online (Sandbox Code Playgroud)
和
> x2
[1] Y N N N N
Run Code Online (Sandbox Code Playgroud)
这些向量总是以"Y"开头,并在下一个"Y"之前接收所有"N".关于如何做到这一点的建议?
您可以使用单行的组合cumsum和split来执行此操作:
x <- c("Y","N","N","N","N","N","N","N","N","N","N","Y","N","N","N","N")
v <- split(x,paste("x",cumsum(x=="Y"),sep=""))
Run Code Online (Sandbox Code Playgroud)