我有两个大型数据帧(每个35,000 x 135 dim),它们还包含很多NA值。我想要的是将数据帧A中的每一列与前一列数据帧B的内容进行划分。具体来说,对于j = rows和i =列,A(j,2)/ B(j,1),A(j) ,3)/ B(j,2),依此类推。因此,最后会有一个新的数据帧,暗淡(35,000 x 134)。
我已创建此代码(由于大型数据集,遗憾的是数据框在此处无法复制),但有更有效的方法吗?
在我从Fund.data中提取包含单词NNF的每个列后,创建了名为NNF.data的第一个数据帧。
NNF.data <- Fund.data[ , grep("NNF", names(Fund.data))]
示例:
NNF.2005.07.EUR NNF.2005.08.EUR NNF.2005.09.EUR
1 NA NA NA
2 NA NA NA
3 NA NA NA
4 -18,066 -83,044 -1,684
5 NA NA NA
6 1,384,196 1,011,219 3,266,810
7 NA NA NA
8 NA NA NA
9 NA NA NA
10 99,092 1,478,996 1,118,067
11 -6,961,028 1,252,678 2,086,868
12 -2,921,427 -285,339,229 289,599,959
类似于名为AUM.data的数据框
AUM.data <- Fund.data[ , grep("AUM", names(Fund.data))]
保留尺寸
columns <- dim(AUM.data)[2] # 135
rows <- dim(AUM.data)[1] # 35,000
growth_columns <- columns - 1 # Reduce the size of the columns by 1
Growth.data <- data.frame(matrix(ncol = growth_columns, nrow = rows))
# Growth.data dim = 35,000 134
ii <- 1
for(i in 1:growth_columns){
ii <- ii+1
Growth.data[ ,i] <- NNF.data[,ii]/AUM.data[,i]
}
作为回报,我收到警告
In Ops.factor(NNF.data[, k], AUM.data[, i]) : ‘/’ not meaningful for factors
有更有效的方法吗?