#r
Вопрос:
Я пытаюсь написать строку на основе приведенной ниже матрицы,
print(mat)
[,1] [,2]
[1,] "wesd" "2.0E-5"
[2,] "lesd" "8.0E-8"
[3,] "nf" "16.0"
[4,] "ldop" "1.25E-6"
[5,] "lsop" "2.0E-7"
[6,] "esdoxide" "1.0"
[7,] "gns" "1.0"
Ниже приведен мой код, .
ipFile = 'text.txt'
fConn <- file(ipFile,open="w")
paramname <- c("a","b","c","d","e","f","g")
for(a in 1:length(paramname)) {
tmpvar = 1
#Using the matrix value printed above
writeLines(c('parameters ',mat[a,1],'_',as.character(tmpvar),'=',as.character(mat[a,2]),'n'),con=fConn,sep="")
a=a 1
}
close(fconn)
Я получаю следующую ошибку,
Error in writeLines: invalid 'text' argument
Я попытался изменить целочисленные значения, используемые в линиях записи, на as.character, но без надежды. А тем временем, когда я пытаюсь запустить приведенный выше код в консоли, он работает хорошо (удалив аргумент conn=fconn в коде writeLines). Этот код не работает, когда я пытаюсь запустить его из приложения rstudio.
Ответ №1:
Я попробовал это со своей стороны, и это сработало
data= cbind(c( "wesd" , "lesd" , "nf" ,"ldop" ,"lsop" , "esdoxide", "gns"),c( "2.0E-5" , "8.0E-8" , "16.0" , "1.25E-6", "2.0E-7" , "1.0" , "1.0"))
ipFile = 'text.txt'
fConn <- file(ipFile,open="w")
paramname <- c("a","b","c","d","e","f","g")
for(a in 1:length(paramname)) {
tmpvar = 1
#Using the matrix value printed above
writeLines(c('parameters ',data[a,1],'_',as.character(tmpvar),'=',as.character(data[a,2]),'n'),con=fConn,sep="")
a=a 1
}
close(fConn)
Помогло ли это?
Комментарии:
1. Нет, это не работает для меня. Ошибка привязки к нижнему индексу. Я не думаю, что мне нужно делать cbind здесь. Так как cbind объединяет все это в один столбец.
2. это не работает, когда я запускаю приложение rstudio. Но это работает, когда я запускаю консоль!
Ответ №2:
Не знаю почему, но когда я использовал paste во время работы в приложении rstudio, код работал хорошо!
writeLines(c('parameters ',paste(mat[a,1],'_',as.character(tmpvar),'=',as.character(mat[a,2])),'n'),con=fConn,sep="")