R语言 分别统计dataframe中每列的"0/0","1/1","0/1"的个数
时间: 2024-10-13 17:02:36 浏览: 23
Python库 | dask-2021.1.0-py3-none-any.whl
在R语言中,你可以使用`table`函数来统计dataframe中每列二元分类数据(比如“0”、“1”)的频次,包括“0/0”,“1/1”,以及“0/1”的组合。假设你的DataFrame叫做`my_df`,并且有一列是二分类变量`binary_column`,你可以这样做:
```r
# 假设binary_column是列名,替换为你实际的数据框和列名
table_stats <- table(my_df$binary_column)
# 结果将是一个矩阵,其中第一行是"0",第二行是"1"
# 所以我们可以直接提取"0/0"、"1/1"的频次,"0/1"的频次则是两者之差
zero_zero <- table_stats[1, 1]
one_one <- table_stats[2, 2]
zero_one <- table_stats[1, 2] + table_stats[2, 1]
# 或者更简洁地一次性获取所有计数
all_counts <- apply(table_stats, 1, sum)
# 获取特定组合的计数
zero_zero, one_one, zero_one
```
如果你需要对所有列进行这样的统计,可以循环遍历所有的列,或者使用`sapply`或`lapply`结合`table`函数:
```r
# 使用lapply遍历所有列
column_stats <- lapply(2:length(my_df), function(i) {
col_name <- names(my_df)[i]
table(my_df[[col_name]])
})
# 然后提取每个列的特定组合计数
all_combinations <- sapply(column_stats, function(x) c("0/0" = x[1, 1], "1/1" = x[2, 2], "0/1" = x[1, 2] + x[2, 1]))
```
请注意,上述代码假设你的DataFrame的值是“0”和“1”。如果还有其他类别,你可能需要进行调整。
阅读全文