Я читаю разделенный табуляцией файл .txt с двумя полями данных (V1 и V2) в RStudio, используя read.table
V1 V2
Ndepmax 3000
intx 6
Sdepmax 3000
inty 6
Этот файл .txt содержит список значений параметров, которые будут использоваться в качестве входных данных для .exe, который будет запускаться из RStudio с использованием команды system()
, доступной в базе R
Я бы хотел повторить запуск этого .exe с разными значениями для Ndepmax
Я планирую извлечь значения для Ndepmax
из другой таблицы данных, просматривая список значений spec_num
и используя команду vlookup
из пакета expss
maxNdep <- vlookup(spec_num, MinMaxNdep, result_column='NDEP30_max')
Мне не удалось определить, как принять эти итеративные значения maxNdep
и использовать их для замены значения для Ndepmax
во входном файле, который будет передан в .exe с использованием system()
Буду очень признателен за любой совет, как выполнить эту замену.
РЕДАКТИРОВАТЬ: дальнейший код / пояснения включены ниже ...
# Input parameter file to use for building the string for "clf_cmd"
in_file = read.table("input.txt")
head(in_file, 4)
V1 V2
1 Ndepmax 3000
2 intx 6
3 Sdepmax 3000
4 inty 6
# File containing min/max Ndep
MinMaxNdep = read.table(MinMaxNdep, header = TRUE)
head (MinMaxNdep, 1)
SPNUM NDEP30_min NDEP30_max
1 33786 12.7265 22.7265
# Identify species of interest
# I will ultimately loop through a set of spec_num values, but just starting with a single species for now
spec_num <- MinMaxNdep$SPNUM[1]
# Define maxNdep value to use for substitution into `in_file`
library(expss)
maxNdep <- vlookup(spec_num, MinMaxNdep, result_column='NDEP30_max')
# Substitute value of maxNdep for the value of Ndepmax included in the `in_file` data frame
# Not sure how to do this???
# Need to replace the value of 3000 for Ndepmax in the `in_file` data frame with the maxNdep value included in `MinMaxNdep` for spec_num = 33786
# string passed to cmd line for running the .exe
clf <- system((paste0("clf i:in_file", spec_num, ".in"))