2016-09-08 4 views
2

У меня есть код на файл, который работает на матрице, и я прочитал его с помощьюпечати предупреждений по R

источник («filecode.r»)

В матрице, что код работает с должен иметь некоторые конкретные характеристики, я хотел бы напечатать сообщение, чтобы запомнить пользователя, что входная матрица должна быть отформатирована с этими характеристиками.

Код это:

n<- nrow(aa) 
d_ply(aa, 1, function(row){ 
cu<- dist(as.numeric(row[-1])) 
cucu<- as.matrix(cu) 
saveRDS(cucu, file = paste0(row$ID, ".rds")) 
}, .progress='text', .print = TRUE) 

В идеале я хотел бы добавить предупреждающее сообщение, появляющееся перед кодом начинает работать ... как это:

Warning(“1) did you write ‘ID’ in position [1,1] of the input matrix?; 
2) is your matrix saved as a .txt? 
3) ensure that the matrix file does not have empty rows at the end”) 

и получать также вопрос, как «Ты хочешь продолжить?». Благодарим вас за все предложения! Габ

+0

Не возможно просто проверить это в своем скрипте и просто распечатать предупреждение, когда оно не в правильном формате? Мне было бы досадно, когда я должен явно указать сценарию, что я хочу его выполнить _время time_ Я запустил его. Делает работу с другим скриптом в неинтерактивном режиме еще сложнее. – Jasper

+0

Да, вы правы ... если вы ТОЛЬКО пользователь вашего кода. – Gabelins

ответ

2

Помещенный, что в начале файла:

check <- readline(prompt="Warning!\n(1) did you write 'ID' in position [1,1] of the input matrix? \n(2) is your matrix saved as a .txt?\n(3) ensure that the matrix file does not have empty rows at the end\n\n Do you wish to continue? (y/n)") 
if(check == "n") stop("Aborted.") 
print(check) #Here would follow your code instead 

Если вы наберете «у» следующий код будет оцениваться. Если вы наберете «n», скрипт остановится и распечатает сообщение внутри stop().

enter image description here


Вы также можете убедиться, что только «у» и «п» принимаются поставив быстрое заявление внутри время цикла:

check <- NA 
while(!(check %in% c('y','n'))) { 
    check <- readline(prompt="Warning!\n(1) did you write 'ID' in position [1,1] of the input matrix? \n(2) is your matrix saved as a .txt?\n(3) ensure that the matrix file does not have empty rows at the end\n\n Do you wish to continue? (y/n)") 
} 
if(check == "n") stop("Aborted.") 

 Смежные вопросы

  • Нет связанных вопросов^_^