Я использую сценарии bash для написания и запуска сценариев R: поскольку я не был опытным в RI, я писал циклы и условия в сценарии bash, которые затем переводились в сценарии R или «здесь документы» ... как вымогу представить, что R_scripts, созданные таким способом, становится чрезвычайно длинным и трудным для чтения ... поэтому я научился писать циклы и условия с помощью R, но я обнаружил несколько трудностей с системой команд (), поэтому я понял, что сценарии оболочки быликаким-то образом необходимым, если я не хочу сходить с ума от цитирования и экранирования ... ;-) Одна из первых проблем, с которыми я столкнулся, заключалась в следующем: я хотел объявить переменную, подобную этой Rarr="file_1", "file_2", "file_3"
ecc, потому что я хотел вставить ее вR_script
cat>my_R_script.R<<EOF
my_arr<-c(${Rarr})
do something with my_arr
EOF
нужны кавычки, так как если имена файлов не указаны, R предложит вам не найти объекты с именами файлов
Я попытался следовать первому решению в запятой отдельные элементы массива , определяющие IFS="" ,""
, но кажется, что когда Rarr="${arr[*]}";echo "${Rarr}"
элементы arr aразделены только первым символом $ {IFS} ... в моем случае они будут разделены "
есть ли способ избежать этого?
Итак, в основном мой вопрос: как заставить shellчтобы рассмотреть все символы в ${IFS}
?
, в любом случае я нашел два обходных пути для моей проблемы ... первый
arr=($(ls -1 | tail))
new_IFS="\" ,\""
Rarr=${arr[0]}
for ((i=1;i<${#arr[@]};i++))
do
Rarr="${Rarr}${new_IFS}${arr[$i]}"
#echo "${Rarr}"
done;
Rarr=\""${Rarr}"\"
#echo ${Rarr}
и другой с подстановкой параметров ... но я бы хотелзнаю, есть ли прямое решение моей проблемы
заранее благодарю за помощь