r 按某列分组统计个数 tapply
时间: 2023-11-23 20:03:35 浏览: 474
在R中,可以使用tapply函数按照某一列来分组统计个数。
tapply函数的一般用法是:tapply(向量,分组依据,统计函数)。
其中,向量是需要进行分组统计的数据,分组依据是一个指定分组的变量,统计函数是对每个分组的数据进行统计的函数。
举个例子,假设有一个数据框df,其中有两列分别为"性别"和"年龄"。我们想按照性别来统计各个年龄段的人数。代码如下:
result <- tapply(df$年龄, df$性别, FUN = length)
这样,result就是一个以性别作为分组依据的统计结果。其中,每个性别对应的年龄段个数。
如果想要对两个及以上的列进行分组统计,可以使用逗号隔开,参考下面的代码:
result2 <- tapply(df$年龄, list(df$性别, df$学历), FUN = length)
这样,result2就是一个以性别和学历作为分组依据的统计结果。其中,每个性别和学历对应的年龄段个数。
总结一下,tapply函数是R中用于按照指定列分组统计的函数。它非常灵活,可以根据需要进行单列或多列的分组统计,可以使用各种各样的统计函数。
相关问题
python 按某一列分组统计其他列元素出现个数
在Python中,可以使用pandas库来按某一列分组统计其他列元素出现个数。
首先,需要导入pandas库:
import pandas as pd
接下来,创建一个包含需要统计的数据的DataFrame对象的示例:
data = {'列1': [1, 1, 2, 3, 3, 3], '列2': ['A', 'A', 'B', 'B', 'C', 'C']}
df = pd.DataFrame(data)
然后,可以使用groupby()函数按某一列进行分组,并使用count()函数来统计每个组中其他列元素出现的个数:
grouped = df.groupby('列1')['列2'].count()
最后,可以输出结果,查看每个组中其他列元素出现的个数:
print(grouped)
以上代码的输出结果将会是:
列1
1 2
2 1
3 3
Name: 列2, dtype: int64
这说明在列1的值为1的组中,列2中的元素出现了2次;在列1的值为2的组中,列2中的元素出现了1次;在列1的值为3的组中,列2中的元素出现了3次。
使用这种方法可以方便地按某一列进行分组,并统计其他列元素的出现个数。
pandas分组统计某列元素个数
要对某列进行分组统计元素个数,可以使用 Pandas 库中的 `groupby()` 方法结合 `size()` 方法。以下是一个示例:
假设有一个 DataFrame 名为 `df`,其中有两列,分别为 `column_name1` 和 `column_name2`,我们想要对 `column_name1` 进行分组统计元素个数,可以使用以下代码:
```python
df.groupby('column_name1').size()
```
上述代码将按照 `column_name1` 列的不同值进行分组,并统计每个组中的元素个数。
如果你还想要将结果保存到一个新的 DataFrame 中,可以使用 `reset_index()` 方法,例如:
```python
new_df = df.groupby('column_name1').size().reset_index(name='count')
```
这将创建一个新的 DataFrame,其中包含两列,一列为 `column_name1` 中的唯一值,另一列为每个值对应的元素个数。你可以将 `name` 参数设置为你想要的列名。
阅读全文
相关推荐
















