A:如何统计有条件的列中的值
您可以使用以下方法来统计R中特定条件下数据框的一列中的值的数量:
方法一:统计有条件的列中的值
nrow(df[df$column1 == ' value1 ', ])
方法二:带条件统计多列中的值
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 AG 10
2 AG 12
3 AF 3
4 AF 14
5 BG 22
6 BG 15
7 BF 17
8 BF 17
示例1:对有条件的列中的值进行计数
以下代码展示了如何计算team列中值等于 ‘ A ‘ 的值的数量:
#count number of rows where team is equal to 'B'
nrow(df[df$team == ' B ', ])
[1] 4
我们可以看到team列中有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
我们可以看到数据框中只有一行满足这三个条件。
其他资源
以下教程解释了如何在 R 中执行其他常见任务: