删除零后计算相关性

时间:2016-05-23 16:47:16

标签: r

我有两个命名的向量A和B.我必须在删除A和B中的0之后计算它们之间的相关性。也就是说,如果对于某个名称' Sample1',则该值在A和B都是0,然后我想从相关计算中删除该条目。

有没有办法轻松完成这项工作?我正在使用cor(A, B)来计算相关性。

4 个答案:

答案 0 :(得分:3)

如果您的数据位于data.frame df中,则可以使用subset函数:

df <- data.frame(A, B)
with(subset(df, !(A == 0 & B == 0)), cor(A,B))

答案 1 :(得分:2)

这个怎么样?

# construct vectors
set.seed(1234)
A <- sample(0:10, 100, replace=T)
B <- sample(0:10, 100, replace=T)

# remove elements of A and B where both are 0
cor(A[A != 0 | B != 0], B[A !=0 | B != 0])

或者,此刻对自己更加一致

cor(A[!(A == 0 & B == 0)], B[!(A ==0 & B == 0)])

答案 2 :(得分:1)

另一个选项是使用rowSums,创建逻辑索引并执行cor

with(df[!!rowSums(df),], cor(A,B))

答案 3 :(得分:-2)

您只需稍微调整代码即可:

cmdclass={
            'develop': PostDevelopCommand,
            'install': PostInstallCommand,
        },

 class PostInstallCommand(install):
    def run(self):
        # PUT YOUR POST-INSTALL SCRIPT HERE or CALL A FUNCTION
        install.run(self)

na.rm = T告诉它删除缺失值。

相关问题