У меня есть матрица с 52 столбцами, 1290 строк, которая содержит значения p и коэффициенты цикла, который я успешно выполнил.
В этом случае я хочу условно отформатировать один из коэффициентов переменной (r) значение (столбец 3) путем добавления звездочек к концу значения коэффициента в зависимости от связанного значения p (столбец 19).
Я не смог успешно добавить "***"
, когда присутствует экспоненциальное значение p, я также попытался установить options(scipen=999)
, но безрезультатно.Мне удалось выделить 'e', присутствующее в значении p, используя str_sub()
и stri_sub()
, поэтому я мог бы использовать оператор if, если бы я мог заставить ifs работать правильно в цикле:
# p<0.001 (append "***") # p<0.01 (append "**") # p<0.05 (append "*")
Следующее утверждение работает правильно в отдельности, но завершается неудачно, когда я добавляю приведенное ниже в цикл for()
:
# Working asterisk append to coefficient value
if(as.numeric(cell_id_input) < 0.05) {
cell_id_out <- paste0(cell_id_out,"*", sep="")
}
Зацикливание каждой строки в матрице 'dta' с использованием указанных столбцов (только 3 и 19) и добавьте звездочку, если соответствует следующим критериям:
for (j in 1:nrow(dta)){
cell_id_input <- dta[j,19] # Column that contains associated (p) values for 'cell_id_out'
cell_id_out <- dta[j,3] { # Column that contains the coefficient (r) value associated with 'cell_id_input'
if(as.numeric(cell_id_input) < 0.001) {
cell_id_out <- paste0(cell_id_out,"***", sep="")
} else if (as.numeric(cell_id_input) < 0.01) {
cell_id_out <- paste0(cell_id_out,"**", sep="")
} else if(as.numeric(cell_id_input) < 0.05) {
cell_id_out <- paste0(cell_id_out,"*", sep="")
} else {
cell_id_out <- paste(cell_id_out)
}