0

列の 1 つ (「件名」) の形式が少しおかしいデータ フレームがあります。最初の桁が 1 より大きい観測をすべて削除したいと思います。さらに、残りの観測値の指標変数を作成し、最初から数値を削除したいと思います。

だから私はこれが欲しい:

Subject
1; HMB 2 (HB)
1; HRB 4 (HB-R)
2; HRB 1 (HB-L);  HRB4
1; HRB 2 (HB-L)

これになるには:

HMB 2 (HB)     HRB 4 (HB-R)       HRB 2 (HB-L)
1                0                   0
0                1                   0
0                0                   1
4

3 に答える 3

1

これは機能しますか:

library(tidyr)
library(dplyr)
df %>% separate(col = Subject, into = c('count','Subject', 'Subject2'), sep = ';') %>% 
filter(!count >1) %>% select(1,2) %>% type.convert(as.is = T) %>% 
mutate(ID = row_number()) %>% pivot_wider(id_cols = ID, names_from = Subject, values_from = count, values_fill = 0) %>% 
select(-ID)

# A tibble: 3 x 3
  ` HMB 2 (HB)` ` HRB 4 (HB-R)` ` HRB 2 (HB-L)`
          <int>           <int>           <int>
1             1               0               0
2             0               1               0
3             0               0               1
> 
于 2020-11-13T03:38:28.810 に答える