【发布时间】:2012-09-17 12:54:29
【问题描述】:
我是 R 新手,我有 0 和 1 的 X 矩阵,并与 y 作为数据相关联。 我需要删除少于 10 个的观察结果,因此我为 x 添加列并将列名返回到向量。然后删除与一个相关联的 y,然后我需要删除列,因为它将是零列。 所以我收到了这个错误,我不知道如何修复和改进代码 -Col[i] 中的错误:一元运算符的参数无效
这里是代码
a0=rep(1,40)
a=rep(0:1,20)
b=c(rep(1,20),rep(0,20))
c0=c(rep(0,12),rep(1,28))
c1=c(rep(1,5),rep(0,35))
c2=c(rep(1,8),rep(0,32))
c3=c(rep(1,23),rep(0,17))
x=matrix(cbind(a0,a,b,c0,c1,c2,c3),nrow=40,ncol=7)
nam <- paste("V",1:7,sep="")
colnames(x)<-nam
dat <- cbind(y=rnorm(40,50,7),x)
#===================================
toSum <- apply(dat,2,sum)
Col <- Val <- NULL
for(i in 1:length(toSum)){
if(toSum[i]<10){
Col <- c(Col,colnames(dat)[i])
Val <- c(Val,toSum[i])}
}
for(i in 1:length(Col)){
indx <- dat[,Col[i]]==0
datnw <- dat[indx,]
datnw2 <- datnw[,-Col[i]]
}
有人可以帮忙吗?我不确定是否有办法获取 Col 向量中列的位置。我的原始数据大约有 1500 列。
谢谢
【问题讨论】:
标签: r