Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 从x到y的运行计数_R - Fatal编程技术网

R 从x到y的运行计数

R 从x到y的运行计数,r,R,我试图从两个随机变量x和y执行运行计数 x <- rnorm(30, mean = 4, sd = 1) y <- rnorm(20, mean = 2.5, sd = 1) nx <- length(x) ny <- length(y) data <- c(x, y) names(data) <- c(rep("x", nx), rep("y", ny)) data <- sort(data) rank <- rank(data) rbind(d

我试图从两个随机变量x和y执行运行计数

x <- rnorm(30, mean = 4, sd = 1)
y <- rnorm(20, mean = 2.5, sd = 1)
nx <- length(x)
ny <- length(y)
data <- c(x, y)
names(data) <- c(rep("x", nx), rep("y", ny))
data <- sort(data)
rank <- rank(data)
rbind(data, rank)

             y        y        y        y        x        y        y        x        x         y         y        x         y
data 0.6814071 1.014124 1.049729 1.050243 1.164338 1.813754 1.955806 1.973856 2.013982  2.065336  2.402596  2.40338  2.445579
rank 1.0000000 2.000000 3.000000 4.000000 5.000000 6.000000 7.000000 8.000000 9.000000 10.000000 11.000000 12.00000 13.000000
             x         y         x         y         x         y        x         y         x         x         x         y
data  2.495905  2.533128  2.605192  2.675883  2.705004  2.740396  2.84131  2.841654  2.886925  3.024089  3.115692  3.246089
rank 14.000000 15.000000 16.000000 17.000000 18.000000 19.000000 20.00000 21.000000 22.000000 23.000000 24.000000 25.000000
             x         x         x         y         x         x         y         y         x       y         x         x
data  3.389303  3.398962  3.606407  3.657708  3.716344  3.763198  3.895701  3.944308  3.955861  3.9881  4.022458  4.075013
rank 26.000000 27.000000 28.000000 29.000000 30.000000 31.000000 32.000000 33.000000 34.000000 35.0000 36.000000 37.000000
             x        y         x         x        x         y         x         x         x         x         x         x
data  4.151537  4.21085  4.245625  4.355177  4.35652  4.409624  4.522272  4.541122  4.616041  4.619815  4.696114  4.988771
rank 38.000000 39.00000 40.000000 41.000000 42.00000 43.000000 44.000000 45.000000 46.000000 47.000000 48.000000 49.000000
             x
data  5.591174
rank 50.000000
在最后一行[命名(数据)],如果序列是从“y”到“x”(或从“x”到“y”),则运行计数为1,然后下一次运行为2,依此类推。从“x”到“x”或“y”到“y”,运行计数为0。从这50个总值中,我希望得到总运行计数。我正在尝试使用,但没有达到输出


提前感谢。

因此答案似乎是:

length( rle(names(data))$values )

> rle(names(data))
Run Length Encoding
  lengths: int [1:16] 6 1 7 1 2 2 1 2 1 1 ...
  values : chr [1:16] "y" "x" "y" "x" "y" "x" "y" "x" "y" "x" "y" ...
> nx+ny
[1] 50

在那个特定的运行中,答案是16,但在您的运行中,答案显然更大。您应该使用
set.seed(.)
来构建可复制的示例。

因此答案似乎是:

length( rle(names(data))$values )

> rle(names(data))
Run Length Encoding
  lengths: int [1:16] 6 1 7 1 2 2 1 2 1 1 ...
  values : chr [1:16] "y" "x" "y" "x" "y" "x" "y" "x" "y" "x" "y" ...
> nx+ny
[1] 50

在那个特定的运行中,答案是16,但在您的运行中,答案显然更大。您应该使用
set.seed(.)
来构建可复制的示例。

您的预期输出是什么?这里的预期输出是27。您的预期输出是什么?这里的预期输出是27。