0

別のソフトウェアで使用できるように、データ形式を変換しようとしています。私の場合、各 respID の手がかりのリストを保持しながら、resp のレベルを個別の変数に変換する必要があります。私のデータは次のとおりです

df<-structure(list(resp_ID = c(1L, 1L, 1L, 2L, 2L, 2L, 3L, 3L), clues = structure(c(5L, 1L, 4L, 3L, 2L, 5L, 6L, 1L), .Label = c("clear", "elephants", 
    "green", "insects", "muddy", "salty"), class = "factor")), .Names = c("resp_ID", 
    "clues"), class = "data.frame", row.names = c(NA, -8L)) 
    df
      resp_ID     clues
    1       1     muddy
    2       1     clear
    3       1   insects
    4       2     green
    5       2 elephants
    6       2     muddy
    7       3     salty
    8       3     clear

#I want the resulting data to be like

 output<-structure(list(X1 = structure(c(3L, 1L, 2L), .Label = c("clear", 
"insects", "muddy"), class = "factor"), X2 = structure(c(2L, 
1L, 3L), .Label = c("elephants", "green", "muddy"), class = "factor"), 
    X3 = structure(c(3L, 2L, 1L), .Label = c("", "clear", "salty"
    ), class = "factor")), .Names = c("X1", "X2", "X3"), class = "data.frame", row.names = c(NA, 
-3L))

output

   X1        X2    X3
1   muddy     green salty
2   clear elephants clear
3 insects     muddy      
> 

私は使用しようとしまし(!!table(cbind(df[1],stack(df[1])[2])))たが、どこかで順序が間違っていると思います。また、libary(caret)成功せずに使用しようとしました。

4

1 に答える 1

2

1 つのアイデアは、次のようにbind_colsfromを使用することです。dplyr

library(dplyr)
l1 <- split(df$clues, df$resp_ID)
bind_cols(lapply(l1, `length<-`, max(length(l1)))) 

# A tibble: 3 × 3
#      `1`       `2`   `3`
#    <chr>     <chr> <chr>
#1   muddy     green salty
#2   clear elephants clear
#3 insects     muddy  <NA>

ノート

lukeA の補数で長さが等しくなるように設定する

于 2016-10-06T13:26:25.493 に答える