R - 计算每列中某些值的数量

时间:2018-02-05 17:37:53

标签: r dataframe row aggregate-functions predicate

我发现了与我相似的问题,但没有一个解释如何为数据帧的每一列做到这一点。

我有一个这样的数据框:

x1 = seq(12, 200, length=20)
x2 = seq(50, 120, length=20)
x3 = seq(40, 250, length=20)
x4 = seq(100,130, length=20)
x5 = seq(10, 300, length=20) 

df = data.frame(V1=x1, V2=x2, V3=x3, V4=x4, V5=x5) 

现在我想获得每列大于120的值的数量。

我试过了:

nrow(df[,1] >120)

那不起作用,它说0,但它不是真的,而且我想自动完成所有列。

2 个答案:

答案 0 :(得分:2)

您可以使用Alter table tablename set Location hdfs://user/xx/tablename/newtimestamp/ 来解决此问题。

tidyverse

希望这有帮助。

答案 1 :(得分:1)

仅为第一列返回大于120的元素数量

df[df[,1] >120 ,1]

[1] 120.8421 130.7368 140.6316
[4] 150.5263 160.4211 170.3158
[7] 180.2105 190.1053 200.0000

length(df[df[,1] >120 ,1])

[1] 9

为所有列返回大于120的元素数量

cols <- vector()

for(i in 1:ncol(df)){
  cols[i] <- length(df[df[,i] >120 ,i]) 
}

cols

[1]  9  0 12  7 12