2

次のようなデータがありますが、実際experimentにはほとんどありません。単純化されたデータセットです。

DF=structure(list(theoric = c("E", "E", "F", "F", "F"), observed = c("E", 
"E", "F", "F", "E"), experiment = c("RO(2)", "RO(2)", "RO(2)", "RO(2)", 
"RO(2)")), .Names = c("theoric", "observed", "experiment"), row.names = 2:6, class = "data.frame")

現在、私のデータは次の形式になっています。

  theoric observed  experiment
2       E        E RO(2)
3       E        E RO(2)
4       F        F RO(2)
5       F        F RO(2)
6       F        E RO(2)

Adn次のように再形成したい:

                  2 3 4 5 6
RO(2) theoric     E E F F F
RO(2) observed    E E F F E

それを行う最も簡単な方法は何ですか? これを行う方法が本当にわかりません。私は試した

meltR <- melt(DF, id="experiment")

theoricしかし、との間のすべての対応が失われましたobserved。どうもありがとう

編集:完全なデータセット:

DF=structure(list(theoric = c("E", "E", "F", "F", "F", "E", "F", 
"F", "F", "F", "F", "E", "E", "E", "E"), observed = c("E", "E", 
"F", "F", "E", "F", "F", "F", "F", "F", "F", "E", "E", "E", "F"
), experiment = c("RO", "RO", "RO", "RO", "RO", "MO", "MO", "MO", 
"MO", "MO", "MO", "EL", "EL", "EL", "EL")), .Names = c("theoric", 
"observed", "experiment"), row.names = c(2L, 3L, 4L, 5L, 6L, 
24L, 25L, 26L, 27L, 28L, 29L, 21L, 22L, 23L, 13L), class = "data.frame")

出力:

    col2 col1.2 col1.3 col1.4 col1.5 col1.6 col1.24 col1.25 col1.26
1   RO theoric      E      E      F      F      F    <NA>    <NA>    <NA>
6   MO theoric   <NA>   <NA>   <NA>   <NA>   <NA>       E       F       F
12  EL theoric   <NA>   <NA>   <NA>   <NA>   <NA>    <NA>    <NA>    <NA>
16 RO observed      E      E      F      F      E    <NA>    <NA>    <NA>
21 MO observed   <NA>   <NA>   <NA>   <NA>   <NA>       F       F       F
27 EL observed   <NA>   <NA>   <NA>   <NA>   <NA>    <NA>    <NA>    <NA>
   col1.27 col1.28 col1.29 col1.21 col1.22 col1.23 col1.13
1     <NA>    <NA>    <NA>    <NA>    <NA>    <NA>    <NA>
6        F       F       F    <NA>    <NA>    <NA>    <NA>
12    <NA>    <NA>    <NA>       E       E       E       E
16    <NA>    <NA>    <NA>    <NA>    <NA>    <NA>    <NA>
21       F       F       F    <NA>    <NA>    <NA>    <NA>
27    <NA>    <NA>    <NA>       E       E       E       F

編集2:出力をEL追加

RO theoric     E E F F F
RO observed    E E F F E
MO theoric     E F F F F
MO observed    F F F F F
EL theoric     E E E E
EL observed    E E E F
4

2 に答える 2

1

次のこともできます。

require(tidyverse)                                                                                                                                                                                                                  
DF %>% 
  gather(type, val, theoric, observed) %>% 
  unite(experiment, experiment, type, sep=" ") %>% 
  group_by(experiment) %>% 
  mutate(experiment_number = 1:n()) %>% 
  spread(experiment_number, val, fill="")

これにより、次のことが得られます。

   experiment   `1`   `2`   `3`   `4`   `5`   `6`
*       <chr> <chr> <chr> <chr> <chr> <chr> <chr>
1 EL observed     E     E     E     F            
2  EL theoric     E     E     E     E            
3 MO observed     F     F     F     F     F     F
4  MO theoric     E     F     F     F     F     F
5 RO observed     E     E     F     F     E      
6  RO theoric     E     E     F     F     F      
于 2016-10-08T10:33:25.390 に答える