library(tidyr)
library(dplyr)
library(tidyverse)
下面是簡單數據框的代碼。我有一些混亂的數據,導出的列因子類別分佈在不同的列中。通過參考類似的列名將多列與Tidyr的聯合使用
Client<-c("Client1","Client2","Client3","Client4","Client5")
Sex_M<-c("Male","NA","Male","NA","Male")
Sex_F<-c(" ","Female"," ","Female"," ")
Satisfaction_Satisfied<-c("Satisfied"," "," ","Satisfied","Satisfied")
Satisfaction_VerySatisfied<-c(" ","VerySatisfied","VerySatisfied"," "," ")
CommunicationType_Email<-c("Email"," "," ","Email","Email")
CommunicationType_Phone<-c(" ","Phone ","Phone "," "," ")
DF<-data_frame(Client,Sex_M,Sex_F,Satisfaction_Satisfied,Satisfaction_VerySatisfied,CommunicationType_Email,CommunicationType_Phone)
我想用tidyr的「團結」將這些類別重新組合成單列。
DF<-DF%>%unite(Sat,Satisfaction_Satisfied,Satisfaction_VerySatisfied,sep=" ")%>%
unite(Sex,Sex_M,Sex_F,sep=" ")
不過,我必須寫多個「團結」行,我覺得這違反了三次規則,所以必須有一種方法,使這更容易,尤其是因爲我真正的數據包含幾十個需要列合併。是否有一種方法可以使用「統一」一次,但不知何故指的是匹配列名,以便所有相似的列名(例如,包含「Sex」爲「Sex_M」和「Sex_F」,以及「CommunicationType」爲「CommunicationType_Email」和「CommunicationType_Phone」)與上面的公式結合?
我也在想一個允許我輸入列名的函數,但這對我來說太難了,因爲它涉及複雜的標準評估。
'DF%>%UNITE(週六,包含( 「SAT」))'? – Nate
'DF%>%unite(星期六,匹配(「^星期六」))' – akrun