如何计算特定行中数据框中大于10的值的数量?

时间:2017-10-20 11:43:39

标签: r dataframe row

我不知道如何计算特定行中有多少值在数据帧中大于10的值。

例如下面。

mtcars 
               mpg cyl disp  hp drat   wt ... 
Mazda RX4     21.0   6  160 110 3.90 2.62 ... 
Mazda RX4 Wag 21.0   6  160 110 3.90 2.88 ... 
Datsun 710    22.8   4  108  93 3.85 2.32 ... 

我想要关注的行是Datsun所以说第3行显示有多少值大于10,在这种情况下答案是3,因为22.8(mpg),108(disp)和93(hp)。 / p>

我试过df [(df [3,]> 10),]但是没有用。

2 个答案:

答案 0 :(得分:0)

以你开始使用的风格来做这件事的方法是:

length(df[3,][(df[3,])>10])

sum(df[3,]>10)

答案 1 :(得分:0)

只需使用table()功能即可。

<强>予。所有数字栏

对于mtcars数据集中的第3行。检查第3行中的列值是否大于10。

第3行的值&gt; 10

table(mtcars[3,] > 10)

# FALSE  TRUE 
#     7     4 

在11个数字列中,其中4个值大于10且7个列小于10.

要知道哪个是第3行中大于10的值

mtcars[3,][which(mtcars[3,] >10)]
#             mpg disp hp  qsec
# Datsun 710 22.8  108 93 18.61

检查第3行中有多少列值大于10且小于20

第3行值&gt; 10&amp; &LT; 20

table(mtcars[3,] > 10 & mtcars[3,] < 20)

# FALSE  TRUE 
#    10     1 

要知道第3行中大于10且小于20的值

mtcars[3,][which(mtcars[3,] >10 & mtcars[3,] < 20)]
#             qsec
# Datsun 710 18.61

<强> II。数据中的任何因素栏

如果数据中包含任何因子或字符列或非数字,table( )将抛出警告消息。但它会让你计算我们想要的数字列。

例如,在iris数据集中,我们将第5列作为Species因子列。

Iris数据集的一瞥

head(iris, n = 4)
#   Sepal.Length Sepal.Width Petal.Length Petal.Width Species
# 1          5.1         3.5          1.4         0.2  setosa
# 2          4.9         3.0          1.4         0.2  setosa
# 3          4.7         3.2          1.3         0.2  setosa
# 4          4.6         3.1          1.5         0.2  setosa

虹膜第3行值&gt; 4

如下所示,只计算了4列,其中只有一列的值大于4.由于虹膜数据集中的第5列是一个因子,它会抛出警告消息,我们无法检查是否有物种水平大于4或不大于4。

table(iris[3,] > 4)

# FALSE  TRUE 
#     3     1 

# Warning message:
# In Ops.factor(left, right) : ‘>’ not meaningful for factors

在虹膜数据集的第3行中哪个列值大于4

iris[3,][which(iris[3,] > 4)]
#   Sepal.Length
# 3          4.7

# Warning message:
# In Ops.factor(left, right) : ‘>’ not meaningful for factors