如何更改R向量的索引?
我想把不同随机向量的结果画成直线(像随机游动一样看),这样每一个向量都会在前一个向量之后按顺序排列 为此,我希望第二个向量的索引从第一个向量结束的地方开始 例如,在如何更改R向量的索引?,r,vector,indexing,R,Vector,Indexing,我想把不同随机向量的结果画成直线(像随机游动一样看),这样每一个向量都会在前一个向量之后按顺序排列 为此,我希望第二个向量的索引从第一个向量结束的地方开始 例如,在 a <- cumsum(rnorm(10)) b <- cumsum(rnorm(10)) head(a) [1] -0.03900184 -0.37913568 -0.42521156 head(b) [1] 1.3861861 -0.2418804 1.1159065 将b添加到a似乎是一种途径,但当我对结果
a <- cumsum(rnorm(10))
b <- cumsum(rnorm(10))
head(a)
[1] -0.03900184 -0.37913568 -0.42521156
head(b)
[1] 1.3861861 -0.2418804 1.1159065
将
b
添加到a
似乎是一种途径,但当我对结果向量进行子集运算时,我又得到了一个从零开始的向量…您可以在lines
函数中指定x
参数
set.seed(146)
a <- cumsum(rnorm(10))
b <- cumsum(rnorm(10))
plot(a, type = "l", xlim=c(0,20), ylim=c(-10,10), xlab="", ylab="", col=2)
lines(x = 10:19, y = b, col=3)
set.seed(146)
a我们可以使用NA
s创建一个新的b
,直到length(a)-1
,然后添加a
的最后一个值,然后追加b
,然后在行
参数中使用这个新的b
set.seed(1)
a <- cumsum(rnorm(10))
b <- cumsum(rnorm(10))
new_b <- c(rep(NA, length(a)-1),a[length(a)], b)
plot(a, type = "l", xlim=c(0,20), ylim=c(-10,10), xlab="", ylab="", col=2)
lines(new_b, col=3)
set.seed(1)
a使用ggplot2
这样的东西怎么样
library(tidyverse);
set.seed(2017);
a <- cumsum(rnorm(10))
b <- cumsum(rnorm(10))
stack(data.frame(a, b)) %>%
rowid_to_column("x") %>%
ggplot(aes(x, values)) +
geom_line(aes(colour = ind))
library(tidyverse);
种子集(2017);
a%
ggplot(aes(x,值))+
几何线(aes(颜色=ind))
如果数据点索引对您很重要,我假设您使用的是时间序列类型的数据。您应该考虑对象创建和子设置的时间序列索引,以进行所需的操作。这里有一个例子
foo <- ts(1:10, frequency = 1, start = 1)
# Subset using time series indexing
foo1 <- ts(foo[1:5], start = index(foo)[1], frequency = frequency(foo))
foo6 <- ts(foo[6:10], start = index(foo)[6], frequency = frequency(foo))
# Combine using appropriate index
fooNew <- ts(c(foo1, foo6), start = start(foo1), frequency = frequency(foo1))
foo
foo <- ts(1:10, frequency = 1, start = 1)
# Subset using time series indexing
foo1 <- ts(foo[1:5], start = index(foo)[1], frequency = frequency(foo))
foo6 <- ts(foo[6:10], start = index(foo)[6], frequency = frequency(foo))
# Combine using appropriate index
fooNew <- ts(c(foo1, foo6), start = start(foo1), frequency = frequency(foo1))