【发布时间】:2020-07-31 13:23:37
【问题描述】:
我是这个平台的新手,对 R 也很陌生,所以如果您在发布我的问题时发现有任何改进,请随时给我建议。
我目前正在使用 R 评估一项调查。
问题:将数据框除第一列之外的所有值与向量进行比较并计算向量中变量出现次数的最佳方法是什么?
在 Excel 中我会使用 countif 来解决我的问题,在 R 中我尝试了不同过滤器、group_by 和循环函数的组合 - 不幸的是没有成功。我在 Stack Overflow 上搜索了一个解决方案,但到目前为止还没有找到。也许我用了错误的关键字。
示例:
df<-data.frame(c("A","B","A","B","C"),c(-1,1,3,2,3),c(-3,-1,2,-1,2))
colnames(df)<- c("Participant-Type","Item 1","Item 2")
Participant-Type Item 1 Item 2
1 A -1 -3
2 B 1 -1
3 A 3 2
4 B 2 -1
5 C 3 2
vec <- c(-3,-2,-1,0,1,2,3)
[1] -3 -2 -1 0 1 2 3
我想查询数据框以了解不同参与者组选择向量中第 1 项和第 2 项的值的次数。参与者类型 A 的结果应如下所示:
TypeA <- data.frame(c("Item 1","Item 2"),c(0,1), c(0,0),c(1,0),c(0,0),c(0,0),c(0,1),c(1,0), row.names=1)
colnames(TypeA)<-c("-3","-2","-1","0","1","2","3")
-3 -2 -1 0 1 2 3
Item 1 0 0 1 0 0 0 1
Item 2 1 0 0 0 0 1 0
在原始的Data-Set中也有很多NA值。
我知道如何仅从某个 Participant-Type 中选择行。我还发现,该表(df$Item1)为我提供了数据框中第 1 列变量的计数,但未使用的值不是结果的一部分。
我假设没有解决方案将数据框作为一个整体进行查询,所以我必须逐列将结果合并到一个DataFrame中。
但到目前为止,我还没有找到如何分别将列与向量进行比较,如何获取 DataFrame 的每列向量的变量计数。计算每列的唯一值将显示向量中未由参与者使用的变量的任何计数 (= 0)。
非常感谢任何帮助或建议!
编辑:
如果相关,原始 DataFrame 有 22 个变量(列)的 75 个观察值(行)。
【问题讨论】:
标签: r