Как запустить cor.test только при соблюдении условий? - PullRequest
0 голосов
/ 21 июня 2020

Я сейчас пытаюсь определить корреляцию между двумя кадрами данных для 21 столбца. Я хочу, чтобы столбцы в 1 фрейме данных тестировались только против их соответствующего столбца в другом фрейме данных. Я пробовал использовать оператор if. Однако длина каждого столбца больше 1, поэтому это не работает. Кроме того, я пробовал использовать case_when, но не смог заставить его работать. Есть ли у вас какие-нибудь предложения? Я новичок в этом и буду благодарен за любые отзывы.

for(i in 4:24){
  for(x in 4:24){
    if(colnames(`Voss.TG5 1`)== colnames(`Voss.TG5 1`)) { cor.test(`Voss.TG5 1`[,i],`Voss.TG6 1`[,x]) }
      print(paste(colnames(`Voss.TG5 1`)[i], "est:",a$estimate,"p=value",a$p.value))
  }
}

Сообщение об ошибке

the condition has length >1 and only the first element will be used

1 Ответ

0 голосов
/ 21 июня 2020

Предполагая, что вы хотите сравнить столбец 4 первого data.frame со столбцом 4 второго data.frame и 5 с 5, et c., Вам нужно только одно значение, чтобы l oop больше.

Пример:

set.seed(123)
df1 <- data.frame(matrix(rnorm(24e3), nrow=100, ncol=24), 
                  row.names = paste0("id_", 1:100))
colnames(df1) <- paste0("col_", 1:24)
set.seed(456)
df2 <- data.frame(matrix(rnorm(24e3), nrow=100, ncol=24), 
                  row.names = paste0("id_", 1:100))
colnames(df2) <- paste0("col_", 1:24)

getCorResult <- function(x) {
    ct <- cor.test(df1[, x], df2[, x])
    paste0(colnames(df1)[x], " est: ", ct$estimate,"; p-value: ", ct$p.value)
}

for (i in 4:24) print(getCorResult(i))
#> [1] "col_4 est: 0.127978798171234; p-value: 0.204468537818308"
#> [1] "col_5 est: -0.130168697527086; p-value: 0.19676568528598"
#> [1] "col_6 est: -0.00401742175033025; p-value: 0.968356791558258"
#> [1] "col_7 est: -0.13911136442779; p-value: 0.167480254977386"
#> [1] "col_8 est: -0.0802509291976723; p-value: 0.427369490913814"
#> [1] "col_9 est: 0.0336457448519071; p-value: 0.739646539780128"
#> [1] "col_10 est: 0.101054217409236; p-value: 0.317116556319783"
#> [1] "col_11 est: -0.16499181273189; p-value: 0.100914127184667"
#> [1] "col_12 est: 0.0883842999330604; p-value: 0.381876567737707"
#> [1] "col_13 est: 0.133978968109195; p-value: 0.183865978193586"
#> [1] "col_14 est: -0.146591444752327; p-value: 0.145569923059057"
#> [1] "col_15 est: -0.0994068480087866; p-value: 0.325110357585432"
#> [1] "col_16 est: 0.0510291962770492; p-value: 0.614117314454403"
#> [1] "col_17 est: -0.221875409962651; p-value: 0.0265146668160414"
#> [1] "col_18 est: 0.0272800890564412; p-value: 0.787605537795977"
#> [1] "col_19 est: 0.0480880241589448; p-value: 0.63470899715546"
#> [1] "col_20 est: 0.0178734013379405; p-value: 0.859900388976822"
#> [1] "col_21 est: 0.0419569274347847; p-value: 0.678524920388683"
#> [1] "col_22 est: -0.0790894327800203; p-value: 0.43411046999303"
#> [1] "col_23 est: -0.0222165574940321; p-value: 0.826338882900991"
#> [1] "col_24 est: -0.184979303595513; p-value: 0.0654062507984986"

Создано 20.06.2020 с помощью пакета . (v0.3.0)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...