Я работаю над фрагментом кода, который, среди прочих переменных, передает заголовок из bash-скрипта в R. Это может показаться глупым или глупым, но для моих конкретных нужд это именно то, что мне нужно. Итак, у меня есть bash-скрипт:
#!/bin/bash
Rscript script.R "c("column1","column2","column3")"
Я упростил его, но самое главное здесь: он запускает экземпляр Rscript с нужным заголовком, переданным в качестве аргумента. R-скрипт содержит следующие части или соответствующий код:
args<-commandArgs(TRUE) # enable arguments
header <- args[1] # store the first argument in a variable
Теперь я хочу изменить заголовок моих данных на заголовок, который я передал в качестве аргумента. Все следующие фрагменты кода работают по желанию, когда я запускаю их из графического интерфейса (в моем случае из Rstudio):
(1) colnames(data) <- header
(2) colnames(data) <- paste(header, sep=" ")
(3) for (i in 1:length(header)){colnames(data)[i] <- header[i]}
Все эти команды разбивают заголовок на 3 части, так что все три столбца получают новый заголовок (соответственно «column1», «column2» и «column3»). Однако, если я запускаю это из своего bash-скрипта, как описано выше (вызывая Rscript), это не сработает. Вместо этого он дает этот вывод:
c(column1,column2,column3) Chromosome
1 rs10 7
2 rs1000000 12
3 rs10000010 4
4 rs10000012 4
5 rs10000013 4
6 rs10000017 4
Position
1 92221824
2 125456933
3 21227772
4 1347325
5 36901464
6 84997149
... и ясно, что это не то, чего я хочу. Ни одна из трех перечисленных выше команд не работает должным образом. Это меня смущает, так как я ожидаю, что результаты моего кода будут одинаковыми независимо от того, как я его запускаю, будь то Rstudio или Rscript.
У кого-нибудь есть объяснение/решение для этого? Любые идеи высоко ценятся.
header
? Я думаю, что лучше объединить столбцы сcbind
, если они имеют одинаковую длину. (Строка (2) перезаписывает строку (1), поэтому вам не нужна первая строка) - person llrs   schedule 24.02.2014Rscript script.R "c("column1","column2","column3")
- вроде бы есть открывающая двойная кавычка без закрывающей. Это в скрипте или ошибка копирования/вставки? - person Josh Jolly   schedule 24.02.2014