如何将R中的两个因子列和一个数字列的数据帧转换为表?
当我们有两个因子列和一个数字列时,我们可以基于因子列为数字值的总数创建一个列联表。这可以借助基本R中的xtabs函数来完成。例如,如果我们有一个名为df的数据框,其中包含两个因子列(例如f1和f2)和一个数字列(例如Y),则可以创建df的列联表通过使用命令xtabs(Y〜f1 + f1,df)。
例1
考虑以下数据帧-
> x1<-sample(LETTERS[1:4],20,replace=TRUE)输出结果> x2<-sample(letters[1:4],20,replace=TRUE)
> y1<-rpois(20,5)
> df1<-data.frame(x1,x2,y1)
> df1
x1 x2 y11 B a 5
2 B c 6
3 D b 3
4 D c 5
5 C b 8
6 D c 4
7 B c 8
8 A a 3
9 D c 6
10 D d 2
11 D c 9
12 D c 5
13 C d 8
14 C d 6
15 D d 4
16 C c 4
17 D d 5
18 A c 2
19 A c 4
20 B d 5
为df1中的数据创建列联表-
> xtabs(y1~x1+x2,df1)输出结果x2
x1 a b c dA 3 0 6 0
B 5 0 14 5
C 0 8 4 14
D 0 3 29 11
例2
> var1<-sample(c("G1","G2","G3","G4"),20,replace=TRUE)输出结果> var2<-sample(c("C1","C2","C3","C4"),20,replace=TRUE)
> Response<-rpois(20,2)
> df2<-data.frame(var1,var2,Response)
> df2
var1 var2 Response1 G3 C2 1
2 G2 C4 4
3 G4 C2 3
4 G2 C3 4
5 G3 C4 1
6 G3 C3 1
7 G4 C1 1
8 G1 C4 3
9 G2 C3 1
10 G2 C1 0
11 G3 C1 1
12 G3 C4 0
13 G1 C1 2
14 G3 C1 1
15 G4 C1 3
16 G1 C2 4
17 G2 C4 2
18 G4 C4 4
19 G2 C4 1
20 G3 C3 0
为df2中的数据创建列联表-
> xtabs(Response~var1+var2,df2)输出结果
var2var1 C1 C2 C3 C4
G1 2 4 0 3
G2 0 0 5 7
G3 2 1 1 1
G4 4 3 0 4
以上是 如何将R中的两个因子列和一个数字列的数据帧转换为表? 的全部内容, 来源链接: utcz.com/z/319779.html