私は2つの変数を持つdata.frameを持っています。私はそれらをvar1でグループ化し、var2のすべてのxをそのグループの一意の異なる値に置き換える必要があります。例えばグループ化された変数に単一の値を代入する、R
:
var1 var2
1 1 a
2 2 a
3 2 x
4 3 b
5 4 c
6 5 a
7 6 c
8 6 x
9 7 c
10 8 x
11 8 b
12 8 b
13 9 a
結果は次のようになります。
var1 var2
1 1 a
2 2 a
3 2 a <-
4 3 b
5 4 c
6 5 a
7 6 c
8 6 c <-
9 7 c
10 8 b <-
11 8 b
12 8 b
13 9 a
私はこの例を解決するために管理しました:
dat <- data.frame(var1=c(1,2,2,3,4,5,6,6,7,8,8,8,9), var2=c("a","a","x","b","c","a","a","x","c","x","b","b","a"))
dat %>% group_by(var1) %>% mutate(
var2 = as.character(var2),
var2 = ifelse(var2 == 'x',var2[order(var2)][1],var2))
しかし、これはので、私の実際のデータでは動作しません。注文の:
私は別のアプローチが必要ですが、私は "not x"を明示的にチェックするようなものを考えていますが、解決策には至りませんでした。
お手数です!
と? var1 = c(10,10,10)と同様です。 var2 = c( "a"、 "b"、 "x")。 xがグループ内の唯一の値であればどうなるでしょうか? –