我不知道如何计算特定行中有多少值在数据帧中大于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),]但是没有用。
答案 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