gpt4 book ai didi

r - 按 data.table 中的所有列分组

转载 作者:行者123 更新时间:2023-12-03 21:54:11 25 4
gpt4 key购买 nike

我正在与 iris 一起工作R中的数据表。

为了提醒它的外观,我在这里粘贴了六五行

   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
5: 5.0 3.6 1.4 0.2 setosa
6: 5.4 3.9 1.7 0.4 setosa

我想计算按所有列分组的行数。当然我们可以把所有的变量写在 by , 像这样:
iris[, .(Freq = .N), by = .(Sepal.Length, Sepal.Width, Petal.Length, Petal.Width, Species)]



Sepal.Length Sepal.Width Petal.Length Petal.Width Species Freq
1: 5.1 3.5 1.4 0.2 setosa 1
2: 4.9 3.0 1.4 0.2 setosa 1
3: 4.7 3.2 1.3 0.2 setosa 1
4: 4.6 3.1 1.5 0.2 setosa 1
5: 5.0 3.6 1.4 0.2 setosa 1
6: 5.4 3.9 1.7 0.4 setosa 1

但是,我想知道是否有一种方法可以按所有变量分组而无需键入所有列名?

最佳答案

如果您要查找重复项,uniqueN将默认使用所有列:

uniqueN(as.data.table(iris))
# [1] 149

这不会直接回答您的问题,但它可能是完成您最初尝试做的事情的更直接方式。

同样,如果您要查找重复的行,可以使用 duplicateddata.table同样默认使用所有列的方法:
iris[duplicated(iris)]
# Sepal.Length Sepal.Width Petal.Length Petal.Width Species
# 1: 5.8 2.7 5.1 1.9 virginica

关于r - 按 data.table 中的所有列分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62090806/

25 4 0