由分位数阈值设置的行上的输入值

时间:2014-07-06 00:01:54

标签: r

我一直致力于这个项目,我陷入了以下困境:

我有7列,超过30%的行是NA。 顺便说一句,我的所有专栏都是数字。

在这些高缺失值列上,我想根据这些列的分位数值创建4个新列。

第1列 - 在包含数据的行中输入1;否则为0。 第二列 - 在第一个分位数下面的行中输入1;否则为0。 第3列 - 在第2个分位数范围内的行中输入1;否则为0。 第4列 - 在第3个分位数之上的行中输入1;否则为0。

我得到了第一列。但其余的,基于分位数的阈值一直是一个挑战。 这是我到目前为止所拥有的......

我接下来的3个专栏仅基于3个分位数:33.33333%,66.66667%和100%

quantile(High_NAS_set1$EFX, prob=c(33/99,66/99,99/99),na.rm=TRUE)



#1st column: assign 1 for a row that contains data; 0 otherwise

New.EFX_<-High_NAS_set1$EFX #creating a new column
New.EFX[!is.na(New.EFX)]<-1
New.EFX[is.na(New.EFX)]<-0

#2nd Column:assign 1 in rows below the first quantile; 0 otherwise

New.EFX2_<-High_NAS_set1$EFX #creating a new column
quant<-quantile(New2.EFX_Emp,probs=33/99,na.rm=TRUE)
which(New2.EFX_Emp_Total<=quant)<-1  # assign 1 for rows which indexes are below quant
which(New2.EFX_Emp_Total!=quant)<-0

最后两行给我一个错误:

Error in which(New2.EFX_Emp_Total <= quant) <- 1 : 
  could not find function "which<-"  

任何帮助都将非常感激。 谢谢, 让

0 个答案:

没有答案