library(tidyr)
library(dplyr)
library(tidyverse)
Ниже приведен код простого фрейма данных. У меня есть некоторые беспорядочные данные, которые были экспортированы с разбросанными по разным столбцам категориями факторов столбца.
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<-tibble(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_M» и «Sex_F» и «CommunicationType» для «CommunicationType_Email» и "CommunicationType_Phone") сочетаются с приведенной выше формулой?
Я также думал о функции, которая позволяет мне вводить имена столбцов, но для меня это слишком сложно, поскольку требует сложной стандартной оценки.