1
私は再現可能なdf
を持っています。各サンプルについて、サンプルが採取された順序と使用された媒体(AまたはB)を追跡します。データフレーム内の2つの列に基づいて新しい列を作成する
dat <- data.frame(IndID = factor(c(1,1,2,2,2,3,3)),
Order = c(1,2,1,2,3,1,2),
Media = factor(c("A", "B", "B","A","B","A", "A")))
dat
IndID Order Media
1 1 1 A
2 1 2 B
3 2 1 B
4 2 2 A
5 2 3 B
6 3 1 A
7 3 2 A
メディアを含む新しい列と、メディアの各レベル内のサンプリング順序を示す数字を作成します。言い換えれば、IndIDとMediaによるグループ分け、私はサンプルを注文する新しい列を作りたいと思う。各個人について、2つの異なるメディア(IndID1のような)に2つのサンプルしかない場合、新しい値は「A1」および「B1」となる。同じメディアから2つのサンプルがある場合、新しい値はサンプリング順序に従った順序で "B1"と "B2"である必要があります。上記のデータを考慮
は、私は次の列
dat$WantThis <- c("A1", "B1","B1", "A1","B2", "A1", "A2")
IndID Order Media WantThis
1 1 1 A A1
2 1 2 B B1
3 2 1 B B1
4 2 2 A A1
5 2 3 B B2
6 3 1 A A1
7 3 2 A A2
を作成しようとしています私はdplyr
パッケージを使用しようとしているが、paste
に第二引数として含まれるべきものにドットを接続することはできません。
dat2 <- as.data.frame(dat %>% group_by(IndID, Media) %>% mutate(MediaOrder = paste0(Media, ????)))
ありがとうございます。私はどんな提案も歓迎する。
'DAT%>%GROUP_BY(INDID、メディア)%>%変異(WantThis = paste0(メディア、ROW_NUMBER()))'おそらく –
'DAT2 <- dat %>%のGROUP_BY(INDID、メディア)%>%変異(x、ties.method = "first"、na.last = "keep"): 引数 "x"が欠落していて、デフォルトは存在しません。 'WantThis = paste0(media、row_number())) –
あなたはどのdplyrバージョンを持っていますか?それは私にとってうまくいく。 'mutly(WantThis = paste0(Media、1:n()))'を代わりに試してみてください。 –