我有一个包含 1 到 4 的 15 个值的向量。
values <- c(1,2,3,1,2,3,1,2,2,2,1,3,1,2,4)
假设这是问卷中的一个项目,有 15 个人被问到某个问题。 1 到 2 表示受访者用“否”来指代该问题,而值 3 或 4 表示对该问题的肯定回答。我只想找出给出肯定答案的人的百分比,即回答 3 或 4 的受访者数量除以所有参与者的总数。
我从
table()
和prop.table()
开始:
round(prop.table(table(values)), 2)
屈服于
1 2 3 4
0.33 0.40 0.20 0.07
有没有一种方法可以使用 prop.table,以便它给出表示 3 或 4(并且只有那些)的人的百分比。我应该先对值进行二分法吗?
结果应该是这样的:
values
0.27
因为只有一节课,所以可以用
mean
.
mean(values > 2)
#mean(values %in% c(3,4)) #Alternative
#[1] 0.2666667
避免修改或创建新数据的一个选项是在使用
prop.table
创建逻辑表后使用 %in%
:
prop.table(table(values %in% c(3,4)))
# or
# proportions(table(values %in% c(3,4))) # Thanks @GKi
# FALSE TRUE
#0.7333333 0.2666667
线
values %in% c(3,4)
创建一个与数据 values
长度相同的布尔向量。 table
和prop.table
然后总结一下。由于 R 在数学上将 TRUE
/FALSE
分别解释为 1/0,因此它将返回比例。
如果您只想要单一比例而不是两者:
prop.table(table(values %in% c(3,4)))["TRUE"] # Thanks @GKi
# or
# proportions(table(values %in% c(3,4)))["TRUE"]
# TRUE
#0.2666667