2017-06-12 16 views
-1

例としてirisデータセットを使用して、種別ごとに異なる分布を持つ新しい変数を作成しようとしています。条件に基づいて変数を作成する

ランダム正規分布に基づいてnew.variableを作成しますが、パラメータは各種ごとに異なります。ここに私の最近の試みがあります。私は、データセットを分割し、変数を追加し、それをまとめて戻すことができることを知っていますが、それは不要です。

set.seed(42) 
iris$new.variable <- 0 
iris$new.variable[iris$Species == 'setosa'] <- rnorm(nrow(iris[iris$Species == 'setosa']), 5, 1) 
iris$new.variable[iris$Species == 'versicolor'] <- rnorm(nrow(iris[iris$Species == 'versicolor']), 10, 2) 
iris$new.variable[iris$Species == 'virginica'] <- rnorm(nrow(iris[iris$Species == 'virginica']), 20, 3) 

答えて

2

いいですね。

代わりに、あなたははい...もちろん

mns <- c(5, 10, 20) 
sds <- 1:3 
specNum <- as.numeric(iris$Species) 

iris$new.variable <- rnorm(nrow(iris), mns[specNum], sds[specNum]) 
+0

ああのようなものを行うことができます。これは完全に機能します。なぜ私は一度にサブセットを置き換えることができないのか混乱しています...しかし、これは問題を解決します。ありがとうございました。 – pyll

関連する問題