スレッドmutate_each/summarise_each in dplyr: how do I select certain columns and give new names to mutated columns?をビルドしたいと思います。複数の列にmutateを適用する方法について説明します。しかし、私はsum
などの関数を使用できることを理解していますが、私は加算、乗算、除算、減算などの数学演算をどのように適用できるかはわかりません。ここでmutate_eachを使用した数学的操作
は私のデータです:
dput(DF)
structure(list(FY = c(2015, 2016, 2017, 2030, 2015, 2016, 2017,
2030, 2015, 2016, 2017, 2030, 2015, 2016, 2017, 2030, 2015, 2030
), Value = c(5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
19, 20, NA, NA)), .Names = c("FY", "Value"), row.names = c(NA,
18L), class = "data.frame")
ここに私の作業コードは、私が欲しいものをお見せします:
DF<-DF %>%
dplyr::group_by(FY) %>%
dplyr::summarise(Numbers = sum(Value,na.rm = TRUE)) %>%
spread(FY,Numbers)
DF$`2016`<-DF$`2016` + DF$`2030`/3
DF$`2017`<-DF$`2017` + DF$`2030`/3
DF$`2015`<-DF$`2015` + DF$`2030`/3
DF$`2030`<-NULL
DF <- DF %>%
gather(FY,Values,`2015`:`2017`)
私の目標は、次の行を自動化するmutate_each()
を使用することです繰り返しを減らしてください。私は2030
列の1/3位を計算し、その後、私は繰り返しを最小限に抑えるために何ができる2016
DF$`2016`<-DF$`2016` + DF$`2030`/3
DF$`2017`<-DF$`2017` + DF$`2030`/3
DF$`2015`<-DF$`2015` + DF$`2030`/3
に戻って、それを追加するためのmutateどのように使用できるかわからないのですか?操作上の適用後
予想される出力:dplyr
私たちすることができますgroup_by
FY
で
dput(DF)
structure(list(FY = c("2015", "2016", "2017"), Values = c(62.6666666666667,
66.6666666666667, 70.6666666666667)), row.names = c(NA, -3L), .Names = c("FY",
"Values"), class = c("tbl_df", "tbl", "data.frame"))
mutate_eachが列を作成しますが、ここではあなたの期待される出力がakrun @ – akrun
をまとめている使用することができます - 私が間違っているなら、私を修正してください。データセットの各列に関数を適用するのに 'mutate_each'が使われていませんか?したがって、私のデータセット(上の)には '2015,2016,2017'の3つのカラムがあると仮定して、各カラムで' mutate_each'を使って数学演算を行うことはできませんか?私は興味がある。すべてのあなたの助けを前もってありがとう... – watchtower