【发布时间】:2013-09-12 04:18:23
【问题描述】:
根据值的总和有条件地删除数据框列的好方法是什么?
例如,在以下数据框中,我想删除所有值总和为零的列。
df = data.frame(Dum1=c(0,0,0,1,0,0,0,0,0,0),
Dum2=c(0,0,0,0,0,0,0,0,0,0),
Dum3=c(0,0,0,1,0,1,0,0,0,0),
Dum4=c(0,0,0,0,0,0,0,0,0,0))
colSums(as.matrix(df))
Dum1 Dum2 Dum3 Dum4
1 0 2 0
Dum2 和 Dum4 都是零,所以我想去掉它们。不幸的是,在我的应用程序中,我将不提前知道哪些列的总和为零,或者我可以使用以下方法删除它们:
df$Dum2 <- NULL
df$Dum4 <- NULL
str(df)
'data.frame': 10 obs. of 2 variables:
$ Dum1: num 0 0 0 1 0 0 0 0 0 0
$ Dum3: num 0 0 0 1 0 0 0 0 0 0
任何帮助将不胜感激
【问题讨论】:
-
如果提供的答案令人满意地解决了您的问题,接受答案是一种常见的礼貌。在我看来,Senor O 和我本人都对您的问题给出了满意的答案。
-
抱歉,我不得不转移到别的事情上。感谢您的帮助。