我有两个名为“data”和“benchmark”的数据帧。 “数据”由四个时间序列A,B,C和D组成。“基准”由五个时间序列B1,B2,B3,B4,B5组成。
我想将“数据”的每一列划分为“基准”的所有列。所以,总共得到20个时间序列。当我尝试以下代码时,我收到错误消息,我选择了未经分类的列。
benchmark <- read.csv("benchmark.csv") # Read in benchmark data
benchmark.names <- colnames(benchmark)
benchmark.names <- benchmark.names[2:length(benchmark)] # Skip first column to exclude date column
data <- read.csv("data.csv") # Read in data
data.names <- colnames(data)
data.names <- data.names[2:length(data)] # Skip first column to exclude date column
for(i in data[, data.names]){
tmp <- data.frame()
for(k in benchmark[, benchmark.names]){
tmp <- data[, i]/benchmark[, k]
}
div <- rbind(div,tmp)
}
一些额外信息:最终,我想将这些划分的时间序列用于Mann-Kendall趋势测试 关于如何解决这个问题的任何想法?
答案 0 :(得分:1)
我们可以使用 mini_batches = round(Int, ceil(X / 100))
for i=1:mini_batches
mini_batch[i] = X[((i-1)*100 + 1):min(i*100, end)]
file[i]= jldopen("/path to my file/mydata.jld", "w")
write(file, "mini_batch", mini_batch) # alternatively, say "@write file mini_batch"
lose(file)
end
end
lapply
如果我们需要 lst <- lapply(data, function(x) x[col(benchmark[-1])]/benchmark[-1])
输出
rbind