如何将数据框中的每个值除以 R 中的列总数?
要将数据框中的每个值除以列总数,我们可以使用 apply 函数并定义除法函数。例如,如果我们有一个名为 df 的数据框,它包含五列,那么我们可以使用命令 apply(df,2, function(x){x/ sum(x)})将这些列的每个值除以列总数
示例
考虑以下数据框 -
x1<-rpois(40,5)输出结果x2<-rpois(40,2)
x3<-rpois(40,8)
df1<-data.frame(x1,x2,x3)
df1
x1 x2 x31 4 3 9
2 9 5 8
3 4 2 6
4 8 3 9
5 3 2 10
6 8 0 8
7 3 3 7
8 6 2 10
9 9 1 8
10 3 2 3
11 4 2 7
12 4 3 6
13 1 3 11
14 6 2 7
15 5 2 10
16 5 2 11
17 3 0 13
18 4 0 7
19 4 2 15
20 4 3 10
21 6 3 9
22 5 3 2
23 7 3 6
24 3 5 9
25 1 7 8
26 1 3 7
27 4 2 7
28 4 1 5
29 3 1 8
30 8 1 10
31 7 1 8
32 5 0 5
33 3 3 3
34 2 2 9
35 5 2 4
36 6 4 9
37 3 1 8
38 7 4 11
39 5 2 5
40 6 0 11
将每个值除以 df1 中的列总数 -
示例
apply(df1,2,function(x){x/sum(x)})输出结果
x1 x2 x3[1,] 0.021276596 0.03333333 0.028213166
[2,] 0.047872340 0.05555556 0.025078370
[3,] 0.021276596 0.02222222 0.018808777
[4,] 0.042553191 0.03333333 0.028213166
[5,] 0.015957447 0.02222222 0.031347962
[6,] 0.042553191 0.00000000 0.025078370
[7,] 0.015957447 0.03333333 0.021943574
[8,] 0.031914894 0.02222222 0.031347962
[9,] 0.047872340 0.01111111 0.025078370
[10,] 0.015957447 0.02222222 0.009404389
[11,] 0.021276596 0.02222222 0.021943574
[12,] 0.021276596 0.03333333 0.018808777
[13,] 0.005319149 0.03333333 0.034482759
[14,] 0.031914894 0.02222222 0.021943574
[15,] 0.026595745 0.02222222 0.031347962
[16,] 0.026595745 0.02222222 0.034482759
[17,] 0.015957447 0.00000000 0.040752351
[18,] 0.021276596 0.00000000 0.021943574
[19,] 0.021276596 0.02222222 0.047021944
[20,] 0.021276596 0.03333333 0.031347962
[21,] 0.031914894 0.03333333 0.028213166
[22,] 0.026595745 0.03333333 0.006269592
[23,] 0.037234043 0.03333333 0.018808777
[24,] 0.015957447 0.05555556 0.028213166
[25,] 0.005319149 0.07777778 0.025078370
[26,] 0.005319149 0.03333333 0.021943574
[27,] 0.021276596 0.02222222 0.021943574
[28,] 0.021276596 0.01111111 0.015673981
[29,] 0.015957447 0.01111111 0.025078370
[30,] 0.042553191 0.01111111 0.031347962
[31,] 0.037234043 0.01111111 0.025078370
[32,] 0.026595745 0.00000000 0.015673981
[33,] 0.015957447 0.03333333 0.009404389
[34,] 0.010638298 0.02222222 0.028213166
[35,] 0.026595745 0.02222222 0.012539185
[36,] 0.031914894 0.04444444 0.028213166
[37,] 0.015957447 0.01111111 0.025078370
[38,] 0.037234043 0.04444444 0.034482759
[39,] 0.026595745 0.02222222 0.015673981
[40,] 0.031914894 0.00000000 0.034482759
示例
y1<-rnorm(20)输出结果y2<-rnorm(20)
df2<-data.frame(y1,y2)
df2
y1 y21 1.52398233 0.423204080
2 0.48580249 -0.902605575
3 2.67630858 0.007436699
4 0.68410093 0.147904838
5 -1.40680934 1.223015890
6 -2.58064644 1.573868810
7 -0.82872756 -1.663446039
8 0.62632080 -0.478541658
9 -0.52795034 -0.236118274
10 1.68900397 -1.692100343
11 -1.37090356 -0.693266887
12 0.27027656 1.206031106
13 -1.40924870 2.025970432
14 1.06878458 -0.421947510
15 -1.18499758 0.152058450
16 0.85252095 0.520451585
17 0.33823672 0.003101624
18 -0.01792139 0.160589590
19 0.50504901 -0.370946479
20 0.37809177 -1.276916712
将每个值除以 df2 中的列总数 -
示例
apply(df2,2,function(x){x/sum(x)})输出结果
y1 y2[1,] 0.8603878 -1.44805767
[2,] 0.2742673 3.08840341
[3,] 1.5109514 -0.02544581
[4,] 0.3862198 -0.50607909
[5,] -0.7942360 -4.18473645
[6,] -1.4569439 -5.38523353
[7,] -0.4678710 5.69173576
[8,] 0.3535991 1.63740368
[9,] -0.2980625 0.80791489
[10,] 0.9535533 5.78978085
[11,] -0.7739648 2.37211898
[12,] 0.1525888 -4.12662041
[13,] -0.7956132 -6.93216857
[14,] 0.6033989 1.44375812
[15,] -0.6690087 -0.52029131
[16,] 0.4813039 -1.78080492
[17,] 0.1909568 -0.01061268
[18,] -0.0101178 -0.54948191
[19,] 0.2851332 1.26925027
[20,] 0.2134576 4.36916638
以上是 如何将数据框中的每个值除以 R 中的列总数? 的全部内容, 来源链接: utcz.com/z/349150.html