我有两个命名的向量A和B.我必须在删除A和B中的0之后计算它们之间的相关性。也就是说,如果对于某个名称' Sample1',则该值在A和B都是0,然后我想从相关计算中删除该条目。
有没有办法轻松完成这项工作?我正在使用cor(A, B)
来计算相关性。
答案 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告诉它删除缺失值。