library(tidyverse)
以下のサンプルデータを使用して、私はDf1とDf2という2つのデータフレームを持っています。私は文字列で列を選択する単純な関数を作成しようとしています。この場合、 "Person"で始まる両方のデータフレームの列と "Phone"を含むすべての列が作成されます。関数内で "Starts_with"と共にDplyr :: Rename_Atを使用する方法
次に、両方のデータフレームの「Person」列の名前を「Id」に変更したいとします。
ただし、リネーム機能が正常に動作するようになっています。ここで
はどのように
rename_at(vars(starts_with("Person"),funs("Id"=.)))
rename("Id"=names(.)[1])
...
以下Funs<-function(Df){
Df%>%select(starts_with("Person"),contains("Phone"))%>%
rename_at(vars(starts_with("Person"),"Id"))
}
は私がしようとしたが、うまくいきませんでした "名前の変更" の他のいくつかのバリエーションが...最初の試みであるIべきこれを修正しますか?私はそれが十分に簡単なようですので、このサイト上で同様の質問を見つけることを試みたが、私は働く何かを見つけることができませんでした...
サンプルデータ:
`Person #`<-c(199,148,148,145,177,165,144,121,188,188,188,111)
`Phone #1`<-c(6532881717,6572231223,6541132112,6457886543,6548887777,7372222222,6451123425,6783450101,7890986543,6785554444,8764443344,6453348736)
`Phone #2`<-c(NA,NA,NA,NA,NA,7372222222,NA,NA,NA,6785554444,NA,NA)
Animals<-c("Cat","Dog","Elephant","Giraffe","Bird","Snake","Skunk","Raccoon","Moose","Turtle","Beaver","Porcupine")
Df1<-data.frame(`Person #`,`Phone #1`,`Phone #2`, Animals)
`Person ID #`<-c(199,148,142,145,177,165,144,121,182,109,188,111)
`Phone s 1`<-c(6532881717,6572231223,6541132112,6457886543,6548887777,7372222222,6451123425,6783450101,7890986543,6785554400,8764443344,6453348736)
`Phone s 2`<-c(NA,NA,NA,NA,NA,7372222222,NA,NA,NA,6785554444,NA,NA)
Animals<-c("Cat","Dog","Elephant","Giraffe","Bird","Snake","Skunk","Raccoon","Moose","Turtle","Beaver","Porcupine")
Df2<-data.frame(`Person ID #`,`Phone s 1`,`Phone s 2`, Animals)
が、それは別のものを必要としません引数? ['rename_at(.tbl、.vars、.funs = list()、...)'](https://github.com/tidyverse/dplyr/blob/7e90e95258010c8c43d856f3f9af927546a9c833/R/colwise-select.R#L76) 。またはあなたはクローズドパレンを逃していますか? – r2evans