【发布时间】:2021-09-06 04:39:38
【问题描述】:
这是桌子。
example<-matrix(NA,40,7)
colnames(example)=c("month1","month2","month3","month4","month5","month6","month7")
example[,1]<-rep(c("A","B","C","D","E","F","G","H",NA),len=40)
example[,2]<-rep(c("A","H",NA,"C","E",NA,"F",NA),len=40)
example[,3]<-rep(c("C","A","C",NA),len=40)
example[,4]<-rep(c(NA,"A","F","H","E",NA),len=40)
example[,5]<-rep(c("A",NA),len=40)
example[,6]<-rep(c("C",NA,NA,"E"),len=40)
example[,7]<-rep(c("C","A",NA,NA,"C",NA,"F",NA),len=40)
example<-as.data.frame(example)
example
month1 month2 month3 month4 month5 month6 month7
1 A A C <NA> A C C
2 B H A A <NA> <NA> A
3 C <NA> C F A <NA> <NA>
4 D C <NA> H <NA> E <NA>
5 E E C E A C C
6 F <NA> A <NA> <NA> <NA> <NA>
7 G F C <NA> A <NA> F
8 H <NA> <NA> A <NA> E <NA>
9 <NA> A C F A C C
10 A H A H <NA> <NA> A
11 B <NA> C E A <NA> <NA>
12 C C <NA> <NA> <NA> E <NA>
13 D E C <NA> A C C
14 E <NA> A A <NA> <NA> <NA>
15 F F C F A <NA> F
16 G <NA> <NA> H <NA> E <NA>
17 H A C E A C C
18 <NA> H A <NA> <NA> <NA> A
19 A <NA> C <NA> A <NA> <NA>
20 B C <NA> A <NA> E <NA>
...
sub<-c("ALL","A","B","C","D","E","F","G","H")
对于“子”变量中的所有组件。 (所有,a,b,c,...,h) 我想制作一个包含字母数量的表格。 比如把month1和month2的值个数放到alltable[1,1]中, 将month2和month3的值个数放入alltable[2,3]
ALLtable<-matrix(NA,13,15)
ALLtable[1,1]<-dim(example %>% select('month1','month1') %>% drop_na('month1'&'month1'))[1]
ALLtable[1,2]<-dim(example %>% select('month1','month2') %>% drop_na('month1'&'month2'))[1]
ALLtable[1,3]<-dim(example %>% select('month1','month3') %>% drop_na('month1'&'month3'))[1]
ALLtable[2,2]<-dim(example %>% select('month2','month2') %>% drop_na('month2'&'month2'))[1]
ALLtable[2,3]<-dim(example %>% select('month2','month3') %>% drop_na('month2'&'month3'))[1]
example %>% select('month1','month3') %>% drop_na('month1') %>% drop_na(month3)
example %>% select('month3','month1') %>% drop_na('month3') %>% drop_na(month1)
ALLtable
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12] [,13] [,14] [,15]
[1,] 36 22 27 NA NA NA NA NA NA NA NA NA NA NA NA
[2,] 22 25 NA NA NA NA NA NA NA NA NA NA NA NA NA
[3,] 27 NA NA NA NA NA NA NA NA NA NA NA NA NA NA
[4,] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
[5,] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
[6,] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
[7,] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
[8,] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
[9,] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
[10,] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
把column1中'A'值的个数和column2中所有值的个数 进入表[1,2] 将 column1 中的“A”值的数量和 column3 中所有值的数量 进入 Atable[1,3] 之类的
Atable<-matrix(NA,13,15)
Atable[1,1]<-dim(example %>% select(month1,month1) %>% filter(month1=='A') %>% drop_na(month1,month1))[1]
Atable[1,2]<-dim(example %>% select(month1,month2) %>% filter(month1=='A') %>% drop_na(month1,month2))[1]
Atable[1,3]<-dim(example %>% select(month1,month3) %>% filter(month1=='A') %>% drop_na(month1,month3))[1]
Atable[2,2]<-dim(example %>% select(month2,month2) %>% filter(month2=='A') %>% drop_na(month2,month2))[1]
Atable[2,3]<-dim(example %>% select(month2,month3) %>% filter(month2=='A') %>% drop_na(month2,month3))[1]
Atable
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12] [,13] [,14] [,15]
[1,] 5 4 4 NA NA NA NA NA NA NA NA NA NA NA NA
[2,] NA 5 5 NA NA NA NA NA NA NA NA NA NA NA NA
[3,] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
[4,] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
[5,] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
[6,] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
我想轻松自动地完成这个过程。 我可以使用 eval(parse(text= function 和 for 循环, 我认为有很多更容易的方式。
感谢您的帮助。
【问题讨论】:
-
在
Atable[1,.]中,您使用month1过滤了列,而不使用month2等。但在Atable[2,3]中,month3过滤了列。你能告诉我过滤过程的确切属性吗? -
@Park 哦,我输入了错误的代码,Atable[2,3] 必须使用过滤器 month2 而不是 month3
标签: r for-loop automation