过滤虚拟变量以创建索引
Filtering dummy-variables to create an index
我正在尝试在 R 中创建索引,但我不知道从哪里开始。我一直在环顾四周,但我似乎无法找到一种方法来做我想做的事。
我有几个虚拟变量 (1,0),它们表示某人是否是组织的成员 (1) 或 (0)。我想创建一个索引,指示一个人是多少个组织的成员。
也就是说,我应该能够以某种方式过滤并添加此信息以创建这样的索引。
我从来没有做过这样的事情。我听说在 SPSS 中有一些简单的方法可以做到这一点,但我想学习如何在 R 中做到这一点。
有没有人有提示,我该怎么做?
如果有用,这里是我的数据示例:
dput(SK[1:10,])
structure(list(Woeltaetigkeit = c(0, 0, 0, 0, 0, 0, 0, 0, 0,
0), Menschenrechte = c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0), Naturschutz = c(0,
0, 0, 0, 0, 1, 0, 0, 0, 0), Buergerinitiative = c(0, 0, 0, 0,
0, 0, 0, 0, 0, 0), Gewerkschaft = c(0, 0, 0, 0, 0, 0, 0, 0, 0,
0), ehem.Gewerkschaft = c(0, 1, 0, 1, 1, 0, 0, 0, 0, 1), Partei = c(0,
0, 0, 0, 0, 0, 0, 0, 0, 0), Sport = c(1, 0, 0, 1, 0, 1, 0, 0,
1, 1), Hobby = c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0), Gesundheit = c(0,
1, 0, 0, 0, 0, 0, 0, 0, 0), Eltern = c(0, 0, 0, 0, 0, 1, 1, 0,
1, 0), Senioren = c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0)), row.names = c(NA,
10L), class = "data.frame")
我想你只需要(期望的输出将帮助我们准确理解你想要什么):
rowSums(my_data)
输出
> rowSums(my_data)
1 2 3 4 5 6 7 8 9 10
1 2 0 2 1 3 1 0 2 2
编辑:我不清楚组织或人员是在行上还是列上,如果我做出了错误的假设,您可以使用 colSums(my_data)
得到相反的结果。
我正在尝试在 R 中创建索引,但我不知道从哪里开始。我一直在环顾四周,但我似乎无法找到一种方法来做我想做的事。
我有几个虚拟变量 (1,0),它们表示某人是否是组织的成员 (1) 或 (0)。我想创建一个索引,指示一个人是多少个组织的成员。
也就是说,我应该能够以某种方式过滤并添加此信息以创建这样的索引。 我从来没有做过这样的事情。我听说在 SPSS 中有一些简单的方法可以做到这一点,但我想学习如何在 R 中做到这一点。
有没有人有提示,我该怎么做?
如果有用,这里是我的数据示例:
dput(SK[1:10,])
structure(list(Woeltaetigkeit = c(0, 0, 0, 0, 0, 0, 0, 0, 0,
0), Menschenrechte = c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0), Naturschutz = c(0,
0, 0, 0, 0, 1, 0, 0, 0, 0), Buergerinitiative = c(0, 0, 0, 0,
0, 0, 0, 0, 0, 0), Gewerkschaft = c(0, 0, 0, 0, 0, 0, 0, 0, 0,
0), ehem.Gewerkschaft = c(0, 1, 0, 1, 1, 0, 0, 0, 0, 1), Partei = c(0,
0, 0, 0, 0, 0, 0, 0, 0, 0), Sport = c(1, 0, 0, 1, 0, 1, 0, 0,
1, 1), Hobby = c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0), Gesundheit = c(0,
1, 0, 0, 0, 0, 0, 0, 0, 0), Eltern = c(0, 0, 0, 0, 0, 1, 1, 0,
1, 0), Senioren = c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0)), row.names = c(NA,
10L), class = "data.frame")
我想你只需要(期望的输出将帮助我们准确理解你想要什么):
rowSums(my_data)
输出
> rowSums(my_data)
1 2 3 4 5 6 7 8 9 10
1 2 0 2 1 3 1 0 2 2
编辑:我不清楚组织或人员是在行上还是列上,如果我做出了错误的假设,您可以使用 colSums(my_data)
得到相反的结果。