【发布时间】:2015-06-26 15:27:53
【问题描述】:
我的数据集是这样的
library(dyplr)
dta = rbind(c(1,'F', 0),
c(1,'F', 0),
c(1,'F', 0),
c(2,'F', 1),
c(2,'F', 1),
c(3,'F', 1),
c(3,'F', 1),
c(3,'F', 1),
c(4,'M', 1),
c(4,'M', 1),
c(5,'M', 1),
c(6,'M', 0)
)
colnames(dta) <- c('id', 'sex', 'child')
dta = as.data.frame(dta)
所以数据是长格式的,以 id 作为个人标识符。
我的问题是,例如,当我尝试计算 sex 时, 由于 id 的重复,我没有正确的计数。
所以有 3 位女性和 3 位男性。
但是当我数数时我有
dta %>%
group_by(sex) %>%
summarise(n())
8 和 4 - 因为它计算的是行数而不是唯一的 id
交叉表也有同样的问题
dta %>%
group_by(sex, child) %>%
summarise(n())
如何在计数中指明唯一标识符 (n_distinct)?
【问题讨论】:
-
您不想以这种方式创建数据集。
c(1,"F",0)是一个字符向量。 -
@Frank,你是对的,我原来的数据集真的很难
dput,我只是想创建一个简单的例子。