试试这个过滤掉其中的所有值都>10000
所有行:
df[rowSums(df>10000)==ncol(df),]
# a b c
#4 14139 127746 10911
#7 11582 73952 10821
滤除其中的所有值都>10000
所有列:
df[,colSums(df>10000)==nrow(df)]
# [1] 40004 105808 70261 127746 60177 134365 73952 86584 87551 67781
数据
df <- structure(list(a = c(13773, 8680, 4854, 14139, 3106, 3044, 11582,
9475, 728, 4666), b = c(40004, 105808, 70261, 127746, 60177,
134365, 73952, 86584, 87551, 67781), c = c(1913, 2092, 14468,
10911, 14414, 8015, 10821, 12636, 12320, 1266)), .Names = c("a",
"b", "c"), row.names = c(NA, -10L), class = "data.frame")
# a b c
# 1 13773 40004 1913
# 2 8680 105808 2092
# 3 4854 70261 14468
# 4 14139 127746 10911
# 5 3106 60177 14414
# 6 3044 134365 8015
# 7 11582 73952 10821
# 8 9475 86584 12636
# 9 728 87551 12320
# 10 4666 67781 1266
来源
2016-09-23 15:10:36
989
您的情况不是cl耳。在你的代码中,你循环遍历行来找到所有值小于10000的行。然后用于子集化列?这与您的行不符合正确的长度。也许你应该使用'df [apply(df,1,.....),]'如果是删除所有值低于10000的列,那么'df [!sapply(df,function(x)all x <10000))]' – akrun