使用for循环对数据帧执行数学运算
我有一个数据框“DEM2”,由160行和12列组成,我想创建一个新的数据框“zcp_DEM”使用for循环对数据帧执行数学运算,r,R,我有一个数据框“DEM2”,由160行和12列组成,我想创建一个新的数据框“zcp_DEM” zcb_DEM[1,i] <- 100/(100+DEM2[i,2]) ## for all i in 1:160 ## for all i in 1:160 and j in 2:11 zcb_DEM[j,i] <- (100/100+DEM2[i,j])*(1-sum(zcb_DEM[1:j-1,i])*(DEM2[i,j]/100)) 使用warnin
zcb_DEM[1,i] <- 100/(100+DEM2[i,2]) ## for all i in 1:160
## for all i in 1:160 and j in 2:11
zcb_DEM[j,i] <- (100/100+DEM2[i,j])*(1-sum(zcb_DEM[1:j-1,i])*(DEM2[i,j]/100))
使用warnings()
时,会出现以下(错误)
EDIT²我发现了错误所在:数据帧DEM2不是完全数字的,我只是需要修复它。请不要使用RStudio标记,除非您的问题与代码编辑器RStudio有关。你不会在语法问题上使用
MicrosoftWord
标记,即使你碰巧用它来写英语,你也不应该仅仅因为你在用这个程序(而不是emacs、Vim、记事本、RGui或其他任何东西)来写你的R代码而使用RStudio
标记对于第二行,请查看?purr::accumulate
“不工作”不是特定的。错误?还是意外的结果?第二行语义(但不是语法)错误,因此可能没有错误消息。当使用诸如[1:j-1,i]
之类的索引时,您应该始终使用括号。运算符优先级的:“
高于二进制减号。参见?Syntax
这看起来像是用一个包含运行和的数学方程进行转置。对于循环,可能有一种不同的方法,没有任何。但请告诉我们什么不起作用,或者更好地向我们展示当前和所需的数据输出。
zcb_DEM <- matrix(nrow = 11, ncol = 160)
for (i in 1:160 ) {
zcb_DEM[1,i] <- 100/(100+DEM2[i,2])
zcb_DEM[2,i] <- (100/100+DEM2[i,2])*(1-sum(zcb_DEM[1:1,i])*(DEM2[i,2]/100))
zcb_DEM[3,i] <- (100/100+DEM2[i,3])*(1-sum(zcb_DEM[1:2,i])*(DEM2[i,3]/100))
zcb_DEM[4,i] <- (100/100+DEM2[i,4])*(1-sum(zcb_DEM[1:3,i])*(DEM2[i,4]/100))
zcb_DEM[5,i] <- (100/100+DEM2[i,5])*(1-sum(zcb_DEM[1:4,i])*(DEM2[i,5]/100))
zcb_DEM[6,i] <- (100/100+DEM2[i,6])*(1-sum(zcb_DEM[1:5,i])*(DEM2[i,6]/100))
zcb_DEM[7,i] <- (100/100+DEM2[i,7])*(1-sum(zcb_DEM[1:6,i])*(DEM2[i,7]/100))
zcb_DEM[8,i] <- (100/100+DEM2[i,8])*(1-sum(zcb_DEM[1:7,i])*(DEM2[i,8]/100))
zcb_DEM[9,i] <- (100/100+DEM2[i,9])*(1-sum(zcb_DEM[1:8,i])*(DEM2[i,9]/100))
zcb_DEM[10,i] <- (100/100+DEM2[i,10])*(1-sum(zcb_DEM[1:9,i])*(DEM2[i,10]/100))
zcb_DEM[11,i] <- (100/100+DEM2[i,11])*(1-sum(zcb_DEM[1:10,i])*(DEM2[i,11]/100))
print(zcb_DEM)
}
for (i in 1:160) {
for (j in 2:11) {
zcb_DEM[1,i] <- 100/(100+DEM2[i,2])
zcb_DEM[j,i] <- (100/100+DEM2[i,j])*(1-sum(zcb_DEM[1:j-1,i])*(DEM2[i,j]/100))
print(zcb_DEM)
}}
[,155] [,156] [,157] [,158] [,159] [,160] ##this is the last block appearing in the console
[1,] NA NA NA NA NA NA ##for each row there is such a NA vector appearing
[2,] NA NA NA NA NA NA
[3,] NA NA NA NA NA NA
[4,] NA NA NA NA NA NA
[5,] NA NA NA NA NA NA
[6,] NA NA NA NA NA NA
[7,] NA NA NA NA NA NA
[8,] NA NA NA NA NA NA
[9,] NA NA NA NA NA NA
[10,] NA NA NA NA NA NA
[11,] NA NA NA NA NA NA
There were 50 or more warnings (use warnings() to see the first 50)
Warnmeldungen:
1: In Ops.factor(100, DEM2[i, 2]) : ‘+’ not meaningful for factors
2: In Ops.factor(100/100, DEM2[i, 2]) : ‘+’ not meaningful for factors
3: In Ops.factor(DEM2[i, 2], 100) : ‘/’ not meaningful for factors
4: In Ops.factor(100/100, DEM2[i, 3]) : ‘+’ not meaningful for factors
5: In Ops.factor(DEM2[i, 3], 100) : ‘/’ not meaningful for factors
6: In Ops.factor(100/100, DEM2[i, 4]) : ‘+’ not meaningful for factors
7: In Ops.factor(DEM2[i, 4], 100) : ‘/’ not meaningful for factors
8: In Ops.factor(100/100, DEM2[i, 5]) : ‘+’ not meaningful for factors
9: In Ops.factor(DEM2[i, 5], 100) : ‘/’ not meaningful for factors
10: In Ops.factor(100/100, DEM2[i, 6]) : ‘+’ not meaningful for factors
11: In Ops.factor(DEM2[i, 6], 100) : ‘/’ not meaningful for factors
12: In Ops.factor(100/100, DEM2[i, 7]) : ‘+’ not meaningful for factors
13: In Ops.factor(DEM2[i, 7], 100) : ‘/’ not meaningful for factors
14: In Ops.factor(100/100, DEM2[i, 8]) : ‘+’ not meaningful for factors
15: In Ops.factor(DEM2[i, 8], 100) : ‘/’ not meaningful for factors
16: In Ops.factor(100/100, DEM2[i, 9]) : ‘+’ not meaningful for factors
17: In Ops.factor(DEM2[i, 9], 100) : ‘/’ not meaningful for factors
18: In Ops.factor(100/100, DEM2[i, 10]) : ‘+’ not meaningful for factors
19: In Ops.factor(DEM2[i, 10], 100) : ‘/’ not meaningful for factors
20: In Ops.factor(100/100, DEM2[i, 11]) : ‘+’ not meaningful for factors
21: In Ops.factor(DEM2[i, 11], 100) : ‘/’ not meaningful for factors
22: In Ops.factor(100, DEM2[i, 2]) : ‘+’ not meaningful for factors
23: In Ops.factor(100/100, DEM2[i, 2]) : ‘+’ not meaningful for factors
24: In Ops.factor(DEM2[i, 2], 100) : ‘/’ not meaningful for factors
25: In Ops.factor(100/100, DEM2[i, 3]) : ‘+’ not meaningful for factors
26: In Ops.factor(DEM2[i, 3], 100) : ‘/’ not meaningful for factors
27: In Ops.factor(100/100, DEM2[i, 4]) : ‘+’ not meaningful for factors
28: In Ops.factor(DEM2[i, 4], 100) : ‘/’ not meaningful for factors
29: In Ops.factor(100/100, DEM2[i, 5]) : ‘+’ not meaningful for factors
30: In Ops.factor(DEM2[i, 5], 100) : ‘/’ not meaningful for factors
31: In Ops.factor(100/100, DEM2[i, 6]) : ‘+’ not meaningful for factors
32: In Ops.factor(DEM2[i, 6], 100) : ‘/’ not meaningful for factors
33: In Ops.factor(100/100, DEM2[i, 7]) : ‘+’ not meaningful for factors
34: In Ops.factor(DEM2[i, 7], 100) : ‘/’ not meaningful for factors
35: In Ops.factor(100/100, DEM2[i, 8]) : ‘+’ not meaningful for factors
36: In Ops.factor(DEM2[i, 8], 100) : ‘/’ not meaningful for factors
37: In Ops.factor(100/100, DEM2[i, 9]) : ‘+’ not meaningful for factors
38: In Ops.factor(DEM2[i, 9], 100) : ‘/’ not meaningful for factors
39: In Ops.factor(100/100, DEM2[i, 10]) : ‘+’ not meaningful for factors
40: In Ops.factor(DEM2[i, 10], 100) : ‘/’ not meaningful for factors
41: In Ops.factor(100/100, DEM2[i, 11]) : ‘+’ not meaningful for factors
42: In Ops.factor(DEM2[i, 11], 100) : ‘/’ not meaningful for factors
43: In Ops.factor(100, DEM2[i, 2]) : ‘+’ not meaningful for factors
44: In Ops.factor(100/100, DEM2[i, 2]) : ‘+’ not meaningful for factors
45: In Ops.factor(DEM2[i, 2], 100) : ‘/’ not meaningful for factors
46: In Ops.factor(100/100, DEM2[i, 3]) : ‘+’ not meaningful for factors
47: In Ops.factor(DEM2[i, 3], 100) : ‘/’ not meaningful for factors
48: In Ops.factor(100/100, DEM2[i, 4]) : ‘+’ not meaningful for factors
49: In Ops.factor(DEM2[i, 4], 100) : ‘/’ not meaningful for factors
50: In Ops.factor(100/100, DEM2[i, 5]) : ‘+’ not meaningful for factors