我正在使用R来运行调查数据而且我已经碰壁了。我所做的大部分编码都是用Python编写的,我对R来说真的很陌生并且在工作中学习。我试图找到一种方法来计算出在两个地方有多少行具有相同的答案。例如,有多少人回答问题4(这是其自己的专栏)并且“满意”也回答问题7(获得,它自己的专栏)为“满意”。我正在使用readxl输入工作表,并且一直无法获得if,然后循环以我想要的方式运行,如果有的话,我不确定我做错了什么。
答案 0 :(得分:0)
此函数告诉您有多少行包含至少k
个相同值的元素。
nrow_repeat <- function(data,k){
maxrepeat <- function(row){
max(table(row))
}
sum(apply(data,1,maxrepeat) >= k)
}
如果您想要检查确切的k
元素,只需在上面的函数定义中将>=
更改为==
即可。在下面的示例中,有2行,第5行和第10行,其中包含重复5次或更多次的值。
data
# V1 V2 V3 V4 V5 V6 V7 V8 V9 V10
#1 5 1 4 1 4 5 1 5 1 4
#2 1 3 2 2 5 3 5 2 3 1
#3 4 4 5 5 3 5 2 4 5 1
#4 2 4 1 1 5 2 5 2 3 2
#5 2 2 1 2 2 4 2 2 3 4
#6 4 1 2 3 2 1 5 1 5 2
#7 5 5 5 3 1 4 3 1 3 3
#8 3 2 3 4 5 1 1 1 2 5
#9 2 1 3 4 1 4 2 2 1 3
#10 4 4 2 3 1 4 4 4 5 2
nrow_repeat(data,5)
#[1] 2
它也适用于角色值。