R - Count numbers of certain values in each column

北城以北 提交于 2019-12-23 17:14:40

问题


I have found similar questions to mine, but none of them explains how to do that for each column of a dataframe.

I have a dataframe like this:

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) 

Now I want to get the number of values that are greater than 120 for each column.

I have tried:

nrow(df[,1] >120)

That didnt work, it says 0, but its not true, and also I want to do all columns automatically.


回答1:


You can use tidyverse to solve this.

library(tidyverse)

df%>%
gather(x, value, V1:V5)%>%
group_by(x)%>%
tally(value > 120)

# A tibble: 5 x 2
  x         n
  <chr> <int>
1 V1        9
2 V2        0
3 V3       12
4 V4        7
5 V5       12

Hope this helps.




回答2:


returning the amount of elements greater than 120 only for the first column

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

returning the amount of elements greater than 120 for all columns

cols <- vector()

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

cols

[1]  9  0 12  7 12


来源:https://stackoverflow.com/questions/48628332/r-count-numbers-of-certain-values-in-each-column

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!