R 按组执行j时获取向量

R 按组执行j时获取向量,r,data.table,R,Data.table,我有一个很琐碎的问题,我找不到答案。 使用mtcars数据: library(data.table) data(mtcars) mtcars<-as.data.table(mtcars) mtcars <- mtcars[,.N, by=cyl] mtcars cyl N 1: 6 7 2: 4 11 3: 8 14 我是否可以直接将N列作为向量而不是数据表的列来获取?尝试以下操作: library(data.table) data(mtcars) mtc

我有一个很琐碎的问题,我找不到答案。 使用mtcars数据:

library(data.table)
data(mtcars)
mtcars<-as.data.table(mtcars)
mtcars <- mtcars[,.N, by=cyl]
mtcars

    cyl  N
1:   6  7
2:   4 11
3:   8 14
我是否可以直接将N列作为向量而不是数据表的列来获取?

尝试以下操作:

library(data.table)
data(mtcars)
mtcars <- as.data.table(mtcars)
mtcars <- mtcars[,.N, by=cyl]$N
mtcars
> [1]  7 11 14

如果要使用base R执行此操作,可以使用:

sapply(unique(mtcars$cyl), function(x) sum(mtcars$cyl == x))

与mtcars[,.N,by=cyl]$N一样,您可以使用一些基本的R方法来提取列mtcars$N或mtcars[[N]]Fyi,用向量覆盖mtcars会让任何阅读您的代码的人感到困惑,因为它被广泛认为是一个数据集。或tablemtcars$cyl@docendodiscimus如果他们想维持群体的秩序,就不会这样。表将按气缸对结果进行排序。