Rでは、ベクトル、つまり1次元行列で、値3のコンポーネントを値1に、値4のコンポーネントを値2に変更したいと思います。どうすればよいですか?ありがとう!
15427 次
1 に答える
17
慣用的なrの方法は、次[<-の形式で
を使用することです。x[index] <- result
整数/因子または文字変数を扱っている場合は==、インデックス作成に確実に機能します。
x <- rep(1:5,3)
x[x==3] <- 1
x[x==4] <- 2
x
## [1] 1 2 1 2 5 1 2 1 2 5 1 2 1 2 5
にはcar便利な関数recode(のラッパー[<-)があり、1回の呼び出しですべての再コーディングを組み合わせることができます。
例えば
library(car)
x <- rep(1:5,3)
xr <- recode(x, '3=1; 4=2')
x
## [1] 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5
xr
## [1] 1 2 1 2 5 1 2 1 2 5 1 2 1 2 5
パッケージmapvaluesから言及してくれた@joranに感謝します。plyr[<-
x <- rep(1:5,3)
mapvalues(x, from = c(3,1), to = c(1,2))
plyr::revaluemapvalues具体的 にfactorまたはcharacter変数のラッパーです。
于 2013-03-01T01:27:01.550 に答える