"tidyverse"パッケージを使用してデータを整理しようとしています。データを収集したときの日付(2000年、2005年、2010年)とその行の国の得点を使って、各国の「ジェンダー不平等」インデックススコアを含むデータフレームがあります。ベクトルが1より大きい "if else"文を作成する
私はこれらのスコアを追加しないと3によってそれらを分割し、2、または年のいずれかのスコアが0であるかどうかに応じて、何もする必要があります - 私は
Year 2000 2005 2010
Norway 0 0.106 0.080
を持っている場合、例えばので、私がしたいです(0 + 0.106 + 0.080)を3つ追加し、2で割る。すべての国でスコアがある場合は3で割る、1年しかスコアがある場合は0で割る
これを行うにはelse文の場合は次のようになります。
GII_data_FINAL <- if (GII_data2$`2000` == 0 & GII_data2$`2005` != 0 & GII_data2$`2010` != 0){GII_data2 %>%
mutate(GII_mean_score = (`2000`+ `2005`+ `2010`)/2)
} else if (GII_data2$`2000`= 0 & GII_data2$`2005` == 0 & GII_data2$`2010` != 0) {GII_data2 %>%
mutate(GII_mean_score = `2000`+ `2005`+ `2010`)
} else if (GII_data2$`2000`== 0 & GII_data2$`2005` != 0 & GII_data2$`2010` == 0) {GII_data2 %>%
mutate(GII_mean_score = `2000`+ `2005`+ `2010`)
} else if (GII_data2$`2000`!= 0 & GII_data2$`2005`!= 0 & GII_data2$`2010` != 0) {GII_data2 %>%
mutate (GII_mean_score = (`2000`+ `2005`+ `2010`)/3)
} else if (GII_data$`2000`!= 0 & GII_data$`2005` == 0 & GII_data$`2010` != 0) {GII_data2 %>%
mutate(GII_mean_score = (`2000`+ `2005`+ `2010`)/2)
} else if (GII_data$`2000`!= 0 & GII_data$`2005` == 0 & GII_data$`2010` == 0) { GII_data2 %>%
mutate(GII_mean_score = `2000`+ `2005`+ `2010`)
} else if (GII_data$`2000`!= 0 & GII_data$`2005` != 0 & GII_data$`2010` == 0) {GII_data2 %>%
mutate(GII_mean_score = (`2000`+ `2005`+ `2010`)/2)
} else if (GII_data2$`2000` == 0 & GII_data2$`2005` == 0 & GII_data2$`2010` == 0) {GII_data2 %>%
mutate(GII_mean_score = `2000`+ `2005`+ `2010`)
}
、私は声明
"Warning messages: 1: In if (GII_data2$`2000` == 0 & GII_data2$`2005` != 0 & GII_data2$`2010` != : the condition has length > 1 and only the first element will be used 2: In if (GII_data2$`2000` & GII_data2$`2005` == 0 & GII_data2$`2010` != : the condition has length > 1 and only the first element will be used 3: In if (GII_data2$`2000` == 0 & GII_data2$`2005` != 0 & GII_data2$`2010` == : the condition has length > 1 and only the first element will be used 4: In if (GII_data2$`2000` != 0 & GII_data2$`2005` != 0 & GII_data2$`2010` != : the condition has length > 1 and only the first element will be used"
を取得しかし、私が調査していると私はこの文を取得する理由を私は理解し、私はRが、私はそれがやりたいことを得るためにどのように他わからないにifelseは(私が理解する限り)いくつかの条件を持つことで動作しないためです。
私はどんな助けもありがとう!
'0'を' NA'に置き換え、 'rowMeans(d [、-1]、na.rm = TRUE)'を使用します。 – Henrik