如何删除数据中超过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]
答案 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