前提
単純に、時系列の数値の成長率を計算しようとしている。
それをやった途端、
‘/’ は同じ大きさのデータフレームに対してだけ定義されています
実現したいこと
D_rate = dat[i,j-1]*100/dat[i,j-1]
の計算をさせたいだけ。
発生している問題・エラーメッセージ
Error in Ops.data.frame(dat[i, j - 1] * 100, dat[i, j - 1]) :
‘/’ は同じ大きさのデータフレームに対してだけ定義されています
該当のソースコード
R (RStudioの下で使っています)
0711M 0811T 0911W 1011T
Orc-01 65 53 43 34
Orc-02 75 71 68 85
Orc-03 67 57 80 54
Orc-04 58 78 84 87
Orc-05 87 88 79 85
なるYld.txt
と言う入力に対して、
dat <- read.table("Yld.txt")
colnames(dat) <- NULL
rownames(dat) <- NULL
print(dat)
R <- nrow(dat)
C <- ncol(dat)
Daily_Growth_Rate <- matrix(0, nrow = R, ncol = C)
Daily Growth Rate by orchard
for (i in 1:R)
for (j in 2:C)
{
D_rate = (dat[i,j] - dat[i,j-1])*100/dat[i,j-1]
Daily_Growth_Rate[i,j] = round(D_rate, digits=1)
}
Daily_Growth_Rate
試したこと
D_rate = (dat[i,j] - dat[i,j-1])*100/dat[i,j-1]
の部分を
D_rate <- (dat[i,j] - dat[i,j-1])*100/dat[i,j-1]
にしたり、変数のD_rateを介さずに、
Daily_Growth_Rate[i,j] = round(((dat[i,j] - dat[i,j-1])*100/dat[i,j-1]), digits=1)
としても、同じだった。
補足情報(FW/ツールのバージョンなど)
回答1件
あなたの回答
tips
プレビュー