R 两个十分位连续变量是什么?

R 两个十分位连续变量是什么?,r,dplyr,data-analysis,data-manipulation,R,Dplyr,Data Analysis,Data Manipulation,我试图将我的数据分成相等的箱子,并对其进行总结,以查看是否存在与因变量相关的任何现有模式。在总结数据的同时,我还希望看到每个十分位数的变量的下界和上界 我已经用R写了下面的代码- telecom_final_Analyse<-read.csv("sampletelecomfinal.csv") col_name_final<-colnames(telecom_final_Analyse) Variable_profile<-vector("list",

我试图将我的数据分成相等的箱子,并对其进行总结,以查看是否存在与因变量相关的任何现有模式。在总结数据的同时,我还希望看到每个十分位数的变量的下界和上界

我已经用R写了下面的代码-

    telecom_final_Analyse<-read.csv("sampletelecomfinal.csv")
    col_name_final<-colnames(telecom_final_Analyse)

    Variable_profile<-vector("list",79) #I have 79 variables

    names(Variable_profile)<-col_name_final


    for (j in 1:79) {
      if(class(telecom_final_Analyse[,col_name_final[j]])=="numeric" || class(telecom_final_Analyse[,col_name_final[j]])=="integer"){

        telecom_final_Analyse%>%mutate(dec=ntile(telecom_final_Analyse[,col_name_final[j]],10))->telecom_final_Analyse

        z<-as.name(col_name_final[j])

        telecom_final_Analyse%>%group_by(dec)%>%summarise(n=sum(churn),N=n(),churn_percentage=n/N,greaterthan = min(z,na.rm=TRUE),lessthan=max(z,na.rm=TRUE))->Variable_profile[[col_name_final[j]]]

      }
      else{
        x<-as.name(col_name_final[j])
        telecom_final_Analyse%>%group_by_(x)%>%summarise(n=sum(churn),N=n(),churn_percentage=n/N)->Variable_profile[[col_name_final[j]]]

      }
    }

我没有运行这个(没有reprex),但是您可以使用mutate_if(is.numeric,{a function},{some parameters})扩展单个变量的代码

见:

所以试试。。。 电信最终分析%>%变异如果(是数字,整数,10)

注意,这将改变现有列。如果您想保留旧函数并创建新函数,您可以在“列表(第一个函数,第二个函数)”中包装多个变异函数,然后输出数据集将比以前更宽。这些都在联机帮助中。
希望这对你有用

嗨,阿杰,谢谢你的提问,热烈欢迎来到StackOverflow社区。我相信我能帮你回答你的问题。然而,请考虑你希望得到一个答案谁从他/她的空闲时间回答你的问题。在StackOverflow上,提问者最好提供一个可复制的示例(有时称为reprex)。reprex有助于其他人理解您的问题,也有助于有类似问题的人快速确定此特定线程是否有用。
z
是符号类型的变量。它不是数字,因此无法计算其平均值。给我们一些数据(10-20个案例,3-5个变量),并告诉我们你到底想要什么。如果您需要一个循环来完成此操作,我将非常惊讶。@dcarlson感谢您的回复。请使用来自-的样本数据集,我想将所有连续变量分为10个十位数,并按十位数对它们进行分组,总结以查看行数、搅动总和(数据中的一个变量)、每十位数每个变量的最小值和最大值。请参考图片,我为一个变量做了这件事,我想为所有数字/整数变量得到相同的输出
telecom_final_Analyse%>%mutate(dec=ntile(telecom_final_Analyse$eqpdays ,10))->telecom_final_Analyse

telecom_final_Analyse%>%group_by(dec)%>%summarise(n=sum(churn),N=n(),churn_percentage=n/N,greaterthan=min(eqpdays,na.rm=TRUE),lessthan=max(eqpdays,na.rm=TRUE))