R中行之间的划分

时间:2018-07-16 16:54:44

标签: r

我正在尝试在矩阵中创建一个新列,该列是从一个时间点到下一个时间点的变化率。使用以下矩阵,这是一个三步过程。

n <- 20
data <- matrix(rnorm(2 * n), nrow = n)

1)专注于第1列,我想将第2行除以第1行。

2)我想创建一个新列以将答案保留在第2行

3)在3 / 2、4 / 3、6 / 5等行中重复此过程

我假设第1步将涉及到以下简单函数

y<-data[1,1]
z<-data[2,1]
roc<- function(x){(z/y)}

第2步很简单

data$ROC[data[1,] >= 0]<- roc

但是我对步骤3不知所措,而且我不确定100%是否正确编写了函数。

1 个答案:

答案 0 :(得分:0)

根据Ryan的评论完成答案。

####data matrix####
n <- 20
data <- matrix(rnorm(2 * n), nrow = n)

####math####
y<-data[,1]/data.table::shift(data[,1])

####new column####
data$ROC[data[1,] >= 0]<- y