你可以使用以下方法来计算R语言中带有特定条件的数据框架中某一列的数值数量。
方法1:用条件计算一列中的值
nrow(df[df$column1 == 'value1', ])
方法2:用条件计算多列中的数值
nrow(df[df$column1 == 'value1' & df$column2 == 'value2', ])
下面的例子展示了如何在R语言中使用下面的数据框架来实践每种方法:
#create data frame
df <- data.frame(team=c('A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'),
position=c('G', 'G', 'F', 'F', 'G', 'G', 'F', 'F'),
points=c(10, 12, 3, 14, 22, 15, 17, 17))
#view data frame
df
team position points
1 A G 10
2 A G 12
3 A F 3
4 A F 14
5 B G 22
6 B G 15
7 B F 17
8 B F 17
例子1:用条件计算一列中的值
下面的代码显示了如何计算团队列中值等于 "A"的数值:
#count number of rows where team is equal to 'B'
nrow(df[df$team == 'B', ])
[1] 4
我们可以看到,在团队列中有4个值等于'B'。
例2:用条件计算多列中的数值
下面的代码显示了如何计算数据框中团队列等于'B'且位置列等于'F'的行的数量:
#count number of rows where team is equal to 'B' and position is equal to 'F'
nrow(df[df$team == 'B' & df$position == 'F', ])
[1] 2
我们可以看到,数据框中有2行同时满足这些条件。
我们可以使用类似的语法来计算满足任何条件的行的数量。
例如,下面的代码显示了如何计算满足三个条件的行的数量:
- 团队等于'B
- 位置等于'G
- 积分大于20
#count rows where team is 'B' and position is 'G' and points > 20
nrow(df[df$team == 'B' & df$position == 'G' & df$points > 20, ])
[1] 1
我们可以看到,数据框中只有1行满足所有这三个条件。