来自 http://cos.name/cn/topic/110644/
目前手上有一个4W行,30列的数据
希望可以像EXCEL一样,每列设一个值,然后筛选出符合条件的行
但是如果用EXCEL的话,没筛选一次需要操作30列,在前期探索条件的时候是在是很大的工作量。
有看到一个R的下标写法 y[y$1 >5 & y $2 <5…,] 这样的。
还有朋友提到使用SUBSET函数,但是这个似乎也不好用。
看到一个有点变态的r语言代码,关键是>和<的使用
system.time({
d_col <- 30
d_row <- 40000
df <- matrix(rep(1:d_row, times = d_col), ncol = d_col)
mm=sample(2,d_col,T)
ind1=c(5,10)[mm]
ind2=c( `>`,`<`)[mm]
y=sapply(1:d_col,function(n){ind2[[n]](df[,n],ind1[n])})
z=y[rowSums(y)==30,]
})
网友评论