【发布时间】:2019-06-27 14:14:06
【问题描述】:
我有以下df1:
structure(list(rchX = c(0.562189054726368, 0.552238805970149,
0.552238805970149, 0.54726368159204, 0.54726368159204, 0.54726368159204,
0.54228855721393, 0.54228855721393, 0.537313432835821, 0.537313432835821
), frqX = c(0.925373134328358, 0.925373134328358, 0.915422885572139,
0.965174129353234, 0.955223880597015, 0.875621890547264, 0.955223880597015,
0.890547263681592, 0.900497512437811, 0.850746268656716), `1` = c(0,
0, 0, 0, 0, 0, 0, 0, 0, 0), `2` = c(0, 0, 0, 0, 0, 0, 0, 0, 0,
0), `3` = c(0, 1, 0, 1, 0, 0, 1, 0, 0, 0), `4` = c(0, 0, 0, 0,
0, 0, 0, 0, 0, 0), `5` = c(0, 0, 0, 0, 0, 0, 0, 0, 1, 0), `6` = c(1,
1, 1, 1, 1, 1, 1, 1, 1, 1), `7` = c(0, 0, 0, 0, 0, 0, 0, 0, 0,
0), `8` = c(0, 0, 0, 0, 0, 0, 0, 0, 0, 1), `9` = c(0, 0, 0, 0,
0, 0, 0, 0, 0, 0), `10` = c(0, 0, 0, 0, 0, 0, 0, 1, 0, 0), `11` = c(1,
1, 1, 0, 0, 0, 0, 0, 0, 0), `12` = c(1, 0, 0, 1, 1, 1, 0, 1,
1, 1), `13` = c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0), `14` = c(0, 0,
0, 0, 0, 0, 0, 0, 0, 0), `15` = c(0, 0, 0, 0, 0, 1, 0, 0, 0,
0), `16` = c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0), `17` = c(0, 0, 0,
0, 0, 0, 0, 0, 0, 0), `18` = c(0, 0, 1, 0, 1, 0, 1, 0, 0, 0),
`19` = c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0), `20` = c(0, 0, 0,
0, 0, 0, 0, 0, 0, 0)), class = "data.frame", row.names = c(NA,
10L))
看起来像这样:
rchX frqX 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
1 0.5621891 0.9253731 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0
2 0.5522388 0.9253731 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0
3 0.5522388 0.9154229 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0
4 0.5472637 0.9651741 0 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0
5 0.5472637 0.9552239 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0
6 0.5472637 0.8756219 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0
7 0.5422886 0.9552239 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0
8 0.5422886 0.8905473 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0
9 0.5373134 0.9004975 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0
10 0.5373134 0.8507463 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0
以及具有相应名称的第二个 data.frame:
df <- data.frame(
a = seq(1:20),
b = LETTERS[1:20]
)
a b
1 1 A
2 2 B
3 3 C
4 4 D
5 5 E
6 6 F
7 7 G
8 8 H
9 9 I
10 10 J
11 11 K
12 12 L
13 13 M
14 14 N
15 15 O
16 16 P
17 17 Q
18 18 R
19 19 S
20 20 T
我想要做的是检查哪些列是 1 并将其与 df 中的相应字母匹配。第 6 列中的 1 表示“F”,第 11 列中的 1 表示“K”。总是正好有三个匹配,所以新 data.frame 的前两行看起来像这样:
rchX frqX varA varB varC
1 0.5621891 0.9253731 F K L
2 0.5522388 0.9253731 C F K
谁能帮帮我?
【问题讨论】: