删除具有一定数量的零的列 - R.

时间:2015-10-17 03:56:40

标签: r

如何删除数据中超过6个零的列?

请让我知道如何让我的示例代码实现我需要做的事情,如果你的方法更短,请告诉我。解释和教导我为什么它的工作也将不胜感激。

我删除零的示例代码:

removeThese = c()
for(i in 1:ncol(myData))
{
rowsWithZeros = which(myData[,i] == 0)
if(length(rowsWithZeros) > 6)
{
removeThese = c(removeThese, i)
}
}
myData= myData[,-removeThese]

3 个答案:

答案 0 :(得分:2)

怎么样

i <- colSums(myData == 0, na.rm=TRUE) < 7
myData <- myData[, i, drop=FALSE]

或者,跟随理查德

i <- colSums(myData == 0, na.rm=TRUE) < 7
myData <- myData[i]

答案 1 :(得分:0)

如果要缩短行数,请使用适当的* apply语句替换for循环。

// (This attribute on the crate.)
#![feature(unboxed_closures, core)]

impl Fn<()> for Box<Cow> {
    extern "rust-call" fn call(&self, _: ()) { }
}

impl FnMut<()> for Box<Cow> {
    extern "rust-call" fn call_mut(&mut self, _: ()) { }
}

impl FnOnce<()> for Box<Cow> {
    type Output = ();
    extern "rust-call" fn call_once(self, _: ()) { }
}

如果你想要一个单行,这个功能可以是内联的。

答案 2 :(得分:0)

如果您有数据框:

ProfilePictureView