【问题标题】:How to count how many values in a specific row which are greater than 10 in a dataframe?如何计算数据框中大于 10 的特定行中有多少值?
【发布时间】:2017-10-20 11:43:38
【问题描述】:

我不知道如何计算数据框中特定行中有多少值大于 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)。

我试过 df[(df[3,]>10),] 但不起作用。

【问题讨论】:

  • 试试rowSums(mtcars > 10)

标签: r dataframe row


【解决方案1】:

按照您开始使用的样式进行操作的方法是:

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

sum(df[3,]>10)

【讨论】:

  • 那么如果我说的是 10 到 20 而不是大于 10 sum(df[3,]>10&
  • 你需要再次指定向量引用,所以sum(df[3,]>10 & df[3,]<20)
  • 如果我要选择特定数据,例如马自达 RX4 hp,我会这样做吗? "df ['马自达 RX4,hp]" ?
【解决方案2】:

只需使用table() 函数。

我。所有数字列

mtcars 数据集中的第 3 行。检查第 3 行中有多少列值大于 10。

第 3 行值 > 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 行值 > 10 &

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

二。数据中的任何因素列

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

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

鸢尾花数据集一瞥

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 行值 > 4

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

table(iris[3,] > 4)

# FALSE  TRUE 
#     3     1 

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

iris数据集第3行哪一列值大于4

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

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

【讨论】:

    猜你喜欢
    • 2015-02-11
    • 1970-01-01
    • 2022-08-23
    • 1970-01-01
    • 2021-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-08
    相关资源
    最近更新 更多