按名称过滤 MJCA 中的绘图元素
Filtering plotted elements in MJCA by their name
我正在尝试在 WG93 数据集上执行 MJCA,我想看看教育水平如何随着强烈的意见而变化。问题是我不知道如何从 mjca 对象中过滤不需要的元素。也就是说,给定级别名称向量 data_mjca$levelnames
,我只想选择其中包含 "edu"
、"1"
或 "5"
的那些元素。特别是在下面的代码中,我想消除名称为 [A-D]:[1-4]
的所有元素。这怎么可能?
library(ca)
library(ggplot2)
wg <- read.table("~/data_path/WG93_full.txt",
header=T, sep="\t")
View(wg)
wg.mjca <- mjca(wg, lambda="indicator", reti=T)
plot(wg.mjca, arrows=c(T,T))
summary(wg.mjca)
总结:
Columns:
name mass qlt inr k=1 cor ctr k=2 cor ctr
1 | A:1 | 20 255 33 | 967 148 63 | 823 107 52 |
2 | A:2 | 53 109 23 | 426 106 33 | -71 3 1 |
3 | A:3 | 33 228 29 | -180 10 4 | -844 218 94 |
4 | A:4 | 29 165 30 | -769 152 60 | 228 13 6 |
5 | A:5 | 8 238 37 | -1639 157 73 | 1183 82 43 |
6 | B:1 | 12 362 38 | 1466 191 87 | 1390 172 88 |
7 | B:2 | 29 129 29 | 635 101 40 | -335 28 13 |
8 | B:3 | 34 115 27 | 330 34 13 | -515 82 35 |
9 | B:4 | 46 129 25 | -454 98 33 | -256 31 12 |
10 | B:5 | 23 417 36 | -1105 234 97 | 979 184 86 |
11 | C:1 | 25 484 36 | 1131 270 110 | 1005 213 99 |
12 | C:2 | 52 125 23 | 293 49 15 | -365 76 27 |
13 | C:3 | 32 181 29 | -295 25 10 | -729 156 67 |
14 | C:4 | 25 181 32 | -899 174 71 | 181 7 3 |
15 | C:5 | 9 252 37 | -1309 109 51 | 1504 144 76 |
16 | D:1 | 10 146 34 | 534 21 10 | 1301 125 65 |
17 | D:2 | 38 14 26 | -67 2 1 | -187 13 5 |
18 | D:3 | 33 162 29 | -48 1 0 | -731 162 70 |
19 | D:4 | 37 7 26 | -98 3 1 | -105 4 2 |
20 | D:5 | 25 174 30 | 102 2 1 | 906 172 80 |
21 | sex:1 | 70 95 18 | -268 69 17 | -163 26 7 |
22 | sex:2 | 73 95 18 | 258 69 17 | 157 26 7 |
23 | age:1 | 15 25 33 | -437 22 10 | 138 2 1 |
24 | age:2 | 34 50 27 | -330 35 13 | 220 15 7 |
25 | age:3 | 26 4 28 | -136 4 2 | -21 0 0 |
26 | age:4 | 24 11 28 | -56 1 0 | -230 11 5 |
27 | age:5 | 20 16 30 | 217 8 3 | -225 8 4 |
28 | age:6 | 23 121 31 | 787 121 50 | 43 0 0 |
29 | edu:1 | 6 8 34 | 414 8 4 | 83 0 0 |
30 | edu:2 | 62 180 22 | 467 167 47 | -131 13 4 |
31 | edu:3 | 40 30 25 | -170 11 4 | -221 19 8 |
32 | edu:4 | 15 114 34 | -750 68 30 | 618 46 23 |
33 | edu:5 | 8 34 32 | -644 25 12 | 403 10 5 |
34 | edu:6 | 11 51 32 | -700 43 19 | 315 9 4 |
library(ca)
wg.mjca <- mjca(wg93, lambda="indicator", reti=T)
my_summary <- summary(wg.mjca)
subset(my_summary$columns,
grepl('(^edu)|(1$)|(5$)', name))
#> name mass qlt inr k=1 cor ctr k=2 cor.1 ctr.1
#> 1 A:1 20 255 33 967 148 63 823 107 52
#> 5 A:5 8 238 37 -1639 157 73 1183 82 43
#> 6 B:1 12 362 38 1466 191 87 1390 172 88
#> 10 B:5 23 417 36 -1105 234 97 979 184 86
#> 11 C:1 25 484 36 1131 270 110 1005 213 99
#> 15 C:5 9 252 37 -1309 109 51 1504 144 76
#> 16 D:1 10 146 34 534 21 10 1301 125 65
#> 20 D:5 25 174 30 102 2 1 906 172 80
#> 21 sex:1 70 95 18 -268 69 17 -163 26 7
#> 23 age:1 15 25 33 -437 22 10 138 2 1
#> 27 age:5 20 16 30 217 8 3 -225 8 4
#> 29 edu:1 6 8 34 414 8 4 83 0 0
#> 30 edu:2 62 180 22 467 167 47 -131 13 4
#> 31 edu:3 40 30 25 -170 11 4 -221 19 8
#> 32 edu:4 15 114 34 -750 68 30 618 46 23
#> 33 edu:5 8 34 32 -644 25 12 403 10 5
#> 34 edu:6 11 51 32 -700 43 19 315 9 4
我正在尝试在 WG93 数据集上执行 MJCA,我想看看教育水平如何随着强烈的意见而变化。问题是我不知道如何从 mjca 对象中过滤不需要的元素。也就是说,给定级别名称向量 data_mjca$levelnames
,我只想选择其中包含 "edu"
、"1"
或 "5"
的那些元素。特别是在下面的代码中,我想消除名称为 [A-D]:[1-4]
的所有元素。这怎么可能?
library(ca)
library(ggplot2)
wg <- read.table("~/data_path/WG93_full.txt",
header=T, sep="\t")
View(wg)
wg.mjca <- mjca(wg, lambda="indicator", reti=T)
plot(wg.mjca, arrows=c(T,T))
summary(wg.mjca)
总结:
Columns:
name mass qlt inr k=1 cor ctr k=2 cor ctr
1 | A:1 | 20 255 33 | 967 148 63 | 823 107 52 |
2 | A:2 | 53 109 23 | 426 106 33 | -71 3 1 |
3 | A:3 | 33 228 29 | -180 10 4 | -844 218 94 |
4 | A:4 | 29 165 30 | -769 152 60 | 228 13 6 |
5 | A:5 | 8 238 37 | -1639 157 73 | 1183 82 43 |
6 | B:1 | 12 362 38 | 1466 191 87 | 1390 172 88 |
7 | B:2 | 29 129 29 | 635 101 40 | -335 28 13 |
8 | B:3 | 34 115 27 | 330 34 13 | -515 82 35 |
9 | B:4 | 46 129 25 | -454 98 33 | -256 31 12 |
10 | B:5 | 23 417 36 | -1105 234 97 | 979 184 86 |
11 | C:1 | 25 484 36 | 1131 270 110 | 1005 213 99 |
12 | C:2 | 52 125 23 | 293 49 15 | -365 76 27 |
13 | C:3 | 32 181 29 | -295 25 10 | -729 156 67 |
14 | C:4 | 25 181 32 | -899 174 71 | 181 7 3 |
15 | C:5 | 9 252 37 | -1309 109 51 | 1504 144 76 |
16 | D:1 | 10 146 34 | 534 21 10 | 1301 125 65 |
17 | D:2 | 38 14 26 | -67 2 1 | -187 13 5 |
18 | D:3 | 33 162 29 | -48 1 0 | -731 162 70 |
19 | D:4 | 37 7 26 | -98 3 1 | -105 4 2 |
20 | D:5 | 25 174 30 | 102 2 1 | 906 172 80 |
21 | sex:1 | 70 95 18 | -268 69 17 | -163 26 7 |
22 | sex:2 | 73 95 18 | 258 69 17 | 157 26 7 |
23 | age:1 | 15 25 33 | -437 22 10 | 138 2 1 |
24 | age:2 | 34 50 27 | -330 35 13 | 220 15 7 |
25 | age:3 | 26 4 28 | -136 4 2 | -21 0 0 |
26 | age:4 | 24 11 28 | -56 1 0 | -230 11 5 |
27 | age:5 | 20 16 30 | 217 8 3 | -225 8 4 |
28 | age:6 | 23 121 31 | 787 121 50 | 43 0 0 |
29 | edu:1 | 6 8 34 | 414 8 4 | 83 0 0 |
30 | edu:2 | 62 180 22 | 467 167 47 | -131 13 4 |
31 | edu:3 | 40 30 25 | -170 11 4 | -221 19 8 |
32 | edu:4 | 15 114 34 | -750 68 30 | 618 46 23 |
33 | edu:5 | 8 34 32 | -644 25 12 | 403 10 5 |
34 | edu:6 | 11 51 32 | -700 43 19 | 315 9 4 |
library(ca)
wg.mjca <- mjca(wg93, lambda="indicator", reti=T)
my_summary <- summary(wg.mjca)
subset(my_summary$columns,
grepl('(^edu)|(1$)|(5$)', name))
#> name mass qlt inr k=1 cor ctr k=2 cor.1 ctr.1
#> 1 A:1 20 255 33 967 148 63 823 107 52
#> 5 A:5 8 238 37 -1639 157 73 1183 82 43
#> 6 B:1 12 362 38 1466 191 87 1390 172 88
#> 10 B:5 23 417 36 -1105 234 97 979 184 86
#> 11 C:1 25 484 36 1131 270 110 1005 213 99
#> 15 C:5 9 252 37 -1309 109 51 1504 144 76
#> 16 D:1 10 146 34 534 21 10 1301 125 65
#> 20 D:5 25 174 30 102 2 1 906 172 80
#> 21 sex:1 70 95 18 -268 69 17 -163 26 7
#> 23 age:1 15 25 33 -437 22 10 138 2 1
#> 27 age:5 20 16 30 217 8 3 -225 8 4
#> 29 edu:1 6 8 34 414 8 4 83 0 0
#> 30 edu:2 62 180 22 467 167 47 -131 13 4
#> 31 edu:3 40 30 25 -170 11 4 -221 19 8
#> 32 edu:4 15 114 34 -750 68 30 618 46 23
#> 33 edu:5 8 34 32 -644 25 12 403 10 5
#> 34 edu:6 11 51 32 -700 43 19 315 9 4