简单的If语句。比较非数值

时间:2018-12-10 09:24:36

标签: r if-statement

我的数据:

pirmas      antras      trecias
    17          44           55
   788         890         1409
   968         218          344
   333         355           Na

我想检查哪个相关性更大:

  • pirma和antras列之间的相关性
  • 或antras和Trecias列之间的相关性

接下来,我要编写If statement。 如果 antras trecias 列之间的相关性更大,我将在最后一列中将此N / A值填充为antras列的值。 但是我得到了一个错误,因为函数cor.test是test,并且没有给出数字答案,因此我无法在If语句中对它们进行比较。

我该怎么做?

我的源代码:

data<- X12_5_3
data
a<-cor.test(data$pirmas, data$trecias)
b<-cor.test(data$antras, data$trecias)

if (a<b) {
data$trecias[4]<-data$antras[4]  

}
data

2 个答案:

答案 0 :(得分:2)

您可以使用$estimate从测试对象中提取相关值。

set.seed(7)
a <- cor.test(rnorm(5), rnorm(5))
b <- cor.test(rnorm(5), rnorm(5))

if (a$estimate < b$estimate) {
  print('correlation of a smaller than b')
}

答案 1 :(得分:2)

如果您不需要进行假设检验,只需使用cor()即可获得其相关系数。此外,由于缺少值,您需要控制参数use来处理它。

a <- cor(df$pirmas, df$trecias, use = "complete.obs")
b <- cor(df$antras, df$trecias, use = "complete.obs")