以下は、2 つの単純なデータ フレームです。すべての満足度が として単純にコード化され、すべての不満足度がとしてコード化されるように、Sat1
および列を再コード化 (折りたたみ) したいと思います。ニュートラルはニュートラルのままです。したがって、これらの要因には 3 つのレベルがあります。Sat2
Satisfied
Dissatisfied
Satisfied, Dissatisfied, and Neutral
私は通常、データ フレームをバインドし、次のようにパッケージlapply
から再コード化して使用することでこれを実現します。car
DF1[2:3] <- lapply(DF1[2:3], recode, c('"Somewhat Satisfied"= "Satisfied","Satisfied"="Satisfied","Extremely Dissatisfied"="Dissatisfied"........etc, etc
特に(データフレームを維持するために)マップ関数を使用してこれを達成したいと思いますat_map
が、私はpurrr
マップの他のバージョンを提案するのは初めてなので、tidyr stringr ggplot2`purrr
だけでなく、すべてを簡単にパイプライン処理できるようにします.dplyr
,
and
以下の例は、私が達成したいことですが、再コーディング用ですが、機能させることができませんでした。
http://www.r-bloggers.com/using-purrr-with-dplyr/
Sat1
との元の列を保持できるように、at_map または同様のマップ関数を使用したいSat2
ので、再コード化された列がデータ フレームに追加され、名前が変更されます。このステップも関数内に含めることができれば素晴らしいことです。
実際には、多くのデータ フレームがあるため、因子レベルを 1 回だけ再コード化し、関数をpurrr
使用して、最小限のコードですべてのデータ フレームを変更します。
Names<-c("James","Chris","Jessica","Tomoki","Anna","Gerald")
Sat1<-c("Satisfied","Very Satisfied","Dissatisfied","Somewhat Satisfied","Dissatisfied","Neutral")
Sat2<-c("Very Dissatisfied","Somewhat Satisfied","Neutral","Neutral","Satisfied","Satisfied")
Program<-c("A","B","A","C","B","D")
Pets<-c("Snake","Dog","Dog","Dog","Cat","None")
DF1<-data.frame(Names,Sat1,Sat2,Program,Pets)
Names<-c("Tim","John","Amy","Alberto","Desrahi","Francesca")
Sat1<-c("Extremely Satisfied","Satisfied","Satisfed","Somewhat Dissatisfied","Dissatisfied","Satisfied")
Sat2<-c("Dissatisfied","Somewhat Dissatisfied","Neutral","Extremely Dissatisfied","Somewhat Satisfied","Somewhat Dissatisfied")
Program<-c("A","B","A","C","B","D")
DF2<-data.frame(Names,Sat1,Sat2,Program)