R if else для write.table, если символьная переменная имеет значение - PullRequest
0 голосов
/ 23 мая 2019

Скажем, у меня есть фрейм данных, который мне нужно сохранить с разными суффиксами, с учетом значения для суффиксной переменной или нет.

Значение суффикса определено в переменной keyvalue, которая имеет тип символа.

keyvalue ="_TRP-1"
outdir= "/user/path/results/"
sample= "ADAS"

И мне нужно записать мой output файл в каталог outdir, используя if loop с условием: если keyvalue не равно na или else

Это то, что я пытался,

if (!is.na(keyvalue)){
    write.table(output, paste(outdir, sample, keyvalue,"_scores.tsv", sep=""), sep="\t", row.names=F, quote=F)

}else{
  write.table(output, paste(outdir, sample,"_scores.tsv", sep=""), sep="\t", row.names=F, quote=F)

}

В конце я хочу получить таблицу / файл данных с именем ADAS_TRP-1_scores.tsv, которому дан keyvalue в противном случае файл с именем ADAS_scores.tsv. Тем не менее, приведенные выше строки не генерируют никаких таблиц, а также сообщения об ошибках, любые предложения приветствуются. Спасибо

1 Ответ

0 голосов
/ 23 мая 2019

Было бы чрезвычайно полезно, если бы вы могли предоставить сообщение об ошибке. Но на первый взгляд это имеет две проблемы:

  1. Вы используете sample_id ниже, но определено только sample.
  2. Вашему outdir= "/user/path/results" -характеру не хватает / в конце.

Таким образом, код будет:

write.table(
  output,
  paste( sample, keyvalue,"_scores.tsv", sep=""), sep="\t",
  row.names=F, quote=F
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...