按R中的虚拟类别对连续变量进行排序

时间:2014-02-26 16:30:29

标签: r if-statement countif

我有一个income变量,其中包含分类变量races的收入信息,其中races=1为白色,races=2为黑色。我试图找出一种方法来查看我的数据集中有多少黑人超过316000.我知道如何在Stata中执行此操作只需

 sort races income
 by races: count if income>316000

然而,我在R中挣扎。我试过

x<-table(income,races)
x[(x>316000) if races==2]

但收到错误消息。

3 个答案:

答案 0 :(得分:1)

试试这个

x[x$income > 316000 & x$races == 2,]

答案 1 :(得分:1)

在R中,您很少(可能从未)需要对数据进行排序。考虑类似的事情:

table(races[income > 316000])

答案 2 :(得分:1)

其他可能性,假设您的数据框名为df

df <- data.frame(income = c(316000, 316000, 316000, 316000, 316001, 316001),
             race = c(1, 1, 1, 2, 2, 2))
df
#   income race
# 1 316000    1
# 2 316000    1
# 3 316000    1
# 4 316000    2
# 5 316001    2
# 6 316001    2

with(df, sum(income[race == 2] > 316000))
# [1] 2

# or 
with(df, sum(income > 316000 & race == 2))
# [1] 2