Able to run R script from command line but not from R Studio (Using Spectre Package)

Hi all, I have an R script which runs well in Command line, but not from R Studio. I have used a package called, "Spectre". I installed the package from GitHub. But not sure why the problem is occurring.

I'm attaching my code, just for reference. I'm not able to come up with a reproducible error since my code deals with Spectre related files. I assume I can get insights on whether there should be any changes adopted while running it from R studio. My code is big. I'm attaching it based on file names,

simESDFET_vf_ys.R

#rm(list=ls());
source('simDev_func_v4_sblk.R');
dt = data.frame()

## USER INPUT STARTS HERE 
S              = list()

#S$W            = c(800)*1e-6
S$W            = c(400)*1e-6
S$L = rep(1.5e-6)
S$NF           = c(10)
#S$NF           = c(16) 
#S$LDOP         = rep(3.9e-6,length(S$W))
#S$LSOP         = rep(0.28e-6,length(S$W))
#S$DCGS         =rep(4e-6,length(S$W))

S$ModelFile[1] = 'C:/Users/sanja/Desktop/130gf/130gf/130BCDLiteGen2/Models/Spectre/130BCDLG2_wrapper.scs'
S$ModelFile[2] = 'C:/Users/sanja/Desktop/130gf/130gf/130BCDLiteGen2/Models/Spectre/130BCDLG2_wrapper.scs'
S$ModelFile[3] = 'C:/Users/sanja/Desktop/130gf/130gf/130BCDLiteGen2/Models/Spectre/130BCDLG2_wrapper.scs'
S$ModelFile[4] = 'C:/Users/sanja/Desktop/130gf/130gf/130BCDLiteGen2/Models/Spectre/130BCDLG2_wrapper.scs'
S$ModelFile[5] = 'C:/Users/sanja/Desktop/130gf/130gf/130BCDLiteGen2/Models/Spectre/design.scs'


S$Section      = c('esd_typical','typical','diode_typical','res_typical','')

S$Model_sh        = 'esdnsh_5p0'

#system('spectre run.scs -f psfascii +l mylog.txt >> /dev/null')

S$terminals    = c('d','s','s','s')
S$values       = c(0,0)
S$swp          = list('d',c(0.1,15,0.1))
S$temperature  = 27
simesd         = 'y'
savesimdata    = 'y'
CallFet		   = 'n'
filename       = 'sim_relHP.dat'
m=1
dtemp=0
#S$devparams_fet    = list(par=par,ptwell=ptwell)
#S$devparams_sh    = list(esd_cadoxide=esdoxide,ldop='0.6u',lsop='0.22u',gns=gns)
S$devparams_sh    = list(m=m,dtemp=dtemp)
event	       = c(1)
## USER INPUT ENDS HERE 
event_name     = c('100ns')
## Parameters are shown below 
##parameters wesd=1u lesd=1u esdoxide=1 nf=1 ldop=2u lsop=0.44u gns=0
dt_big=data.frame()
if (simesd == 'y'){
  cat("IDVGLIN\n")
  cat("Corner:tt\n")
  	for(i in event){
         cat(c("ESD EVENT:",i,"\n"))
          cat(i)
	  S$esd_event=i
          dt = simDev_func_v4_sblk(S)
          dt['TLP']=event_name[i]
          dt['TotalWidth'] = dt$W*1e6
#          dt['TotalWidth'] = dt$W
          dt_big=rbind.fill(dt_big, dt)
  	}
#  dt_big['Corner'] = 'tt'
#  dt_big['gns'] = gns
}

if (savesimdata == 'y'){
  write.table(dt_big, file = filename, sep = ";",quote=F,row.names=F)
}


#x11(type='Xlib')
#p=qplot(data=dt_big, x=vd,y=abs(Id),geom="point")
#p=p+facet_wrap(~TotalWidth)
#print(p)

write.table(dt_big, "output.csv", sep=";")
 
 

#source("esd_data_analysis_v2.R") 
source("csv1_esd_data_analysis_v2.r")

simDev_func_v4_sblk.R

simDev_func_v4_sblk<- function(L){
  ## The list has the following fields
  ## W = Widths
  ## L = Lengths
  ## NF = Number of fingers
  ## ModelFile
  ## Model
  ## Section
  ## terminals
  ## values
  ## swp

  ## FIRST DELETE THE FILE run.scs IF IT ALREADY EXISTS
  if (file.exists('run.scs')){
    system('\\rm run.scs')
  }

  ##if (!dir.create('run.raw',showWarnings=F)){
  system('\\rm -rf run.raw')
  system('\\rm -rf run_data')
  ##}

  dir.create('run_data',showWarnings=F)
  
  ## DEFINE TERMINALS AND VALUES FOR VARIOUS PURPOSES
  ## 4 PLACES WHERE TERMINALS AND VALUES ARE NEEDED
  ## - parameter STATEMENT  : parameters vd=0 vg=0.1 vs=0
  ## 2- instantiation STATEMENT : M1(d1 g1 s1 b1)
  ## 3- voltage sources STATEMENT : vd1(d1 0) vsource
  ## 4- saving currents STATEMENT : print I(vd1),I(vg1),I(vs1),

  ## MAKE TERMINALS AND VALUES FOR THE PARAMETER STATEMENT
  S$terminalsp = unique(S$terminals)
  S$valuesp    = S$values[unique(match(S$terminals,S$terminalsp))]

  ## MAKE TERMINALS AND VALUES FOR THE INSTANTIATION STATEMENT
  ## Same as original terminals

  ## MAKE TERMINALS AND VALUES FOR THE VOLTAGE STATEMENT  
  S$terminalsv = unique(S$terminals)

  ## MAKE TERMINALS AND VALUES FOR THE SAVING CURRENT STATEMENT  
  S$terminals_save = unique(S$terminals)

  ipFile = 'run.scs'

  fConn <- file(ipFile,open="w")
  writeLines('simulator lang=spectre\n', con = fConn, sep = "")
  writeLines('global 0\n', con = fConn, sep = "")
#  writeLines('parameters wireopt=4222\n', con = fConn, sep = "")
#  writeLines('parameters vnw=1.8\n', con = fConn, sep = "")

  ## PUT THE PARAMETERS STATEMENT
  writeLines(c('parameters ',paste('v',S$terminalsp,'=',S$valuesp,' ',sep=''),'\n'),con=fConn,sep="")

  ## Make strings for W,L,NF,
  tmpvar = seq(1:length(S$W))
  S$Wp  = paste('W_',tmpvar,sep="")   ; Wp_str  = paste(S$Wp,'=',S$W,' ',sep="")
  S$Lp  = paste('L_',tmpvar,sep="")   ; Lp_str  = paste(S$Lp,'=',S$L,' ',sep="")
  S$NFp = paste('NF_',tmpvar,sep="")  ; NFp_str = paste(S$NFp,'=',S$NF,' ',sep="")
  #S$DCGSp = paste('DCGS_',tmpvar,sep="")  ; DCGSp_str = paste(S$DCGSp,'=',S$DCGS,' ',sep="")
  
  writeLines(c('parameters ',Wp_str,'\n'),con=fConn,sep="")
  writeLines(c('parameters ',Lp_str,'\n'),con=fConn,sep="")
  writeLines(c('parameters ',NFp_str,'\n'),con=fConn,sep="")
  #writeLines(c('parameters ',DCGSp_str,'\n'),con=fConn,sep="")


  ## #########################################
  ## INCLUDE MODELFILES AND SECTIONS
  ## #########################################
  
  for (cnt in seq(1,length(S$ModelFile))) {
    writeLines(c('include \"', S$ModelFile[cnt], '\"'),con=fConn,sep="")    
    if (nchar(S$Section[cnt]) > 0){
      S$Section[cnt] = gsub("(^ +)|( +$)", "",S$Section[cnt])
      writeLines(c(' section=',S$Section[cnt]),con=fConn,sep="")    
    }
    writeLines('\n',con=fConn,sep="")    
  }

#  writeLines(c('eventalter alter param=esd_event value=', S$esd_event,'\n'), con=fConn, sep="")
#  writeLines(c('exitalter  alter param=esd_exit  value=1\n'          ), con=fConn, sep="")

  ## #########################################
  ## NOW WRITE THE INSTANTIATIONS 
  ## #########################################
  ##### ESDNSH_instantiation
  writeLines('\n',con=fConn,sep="")    
  for (cnt in seq(1,length(S$W))) {
    writeLines(c('X',cnt,'('),con=fConn,sep="")        

    writeLines(paste(S$terminals,cnt,sep=""),con=fConn,sep=" ")        
#    writeLines(paste(S$terminals[1],cnt,sep=""),con=fConn,sep=" ")        
#    writeLines(paste(S$terminals[2],cnt,'_E',sep=""),con=fConn,sep=" ")        
#    writeLines(paste(S$terminals[3],cnt,sep=""),con=fConn,sep=" ")        
#    writeLines(paste(S$terminals[4],cnt,'_E',sep=""),con=fConn,sep=" ")        
##    tmp = seq(3,length(S$terminals),1)
##    writeLines(paste(S$terminals[tmp],cnt,sep=""),con=fConn,sep=" ")      
#    writeLines(paste(S$terminals[tmp],cnt,'_E',sep=""),con=fConn,sep=" ")      

    writeLines(c(')',' ',S$Model_sh,' '),con=fConn,sep="")        
    writeLines(c('w=',S$Wp[cnt],' '),con=fConn,sep="")        
#    writeLines(c(' w=', S$Wp[cnt],'/',S$NFp[cnt]),con=fConn,sep="")        
    writeLines(c(' l=', S$Lp[cnt]),con=fConn,sep="")        
    writeLines(c(' nf='  ,S$NFp[cnt]),con=fConn,sep="")  
    #writeLines(c(' dcgs=' ,S$DCGSp[cnt]),con=fConn,sep="")
    writeLines(paste(' ',names(S$devparams_sh),'=',unlist(S$devparams_sh),sep=""),con=fConn,sep="") 
    writeLines('\n',con=fConn,sep="")    
########## BASE FET Instatiation
#  writeLines('\n',con=fConn,sep="")    
#  for (cnt in seq(1,length(S$W))) {
   if (CallFet=='y') {
    writeLines(c('M',cnt,'('),con=fConn,sep="")        

#    writeLines(paste(S$terminals,cnt,sep=""),con=fConn,sep=" ")        
    writeLines(paste(S$terminals[1],cnt,sep=""),con=fConn,sep=" ")        
    writeLines(paste(S$terminals[2],cnt,'_E',sep=""),con=fConn,sep=" ")        
    writeLines(paste(S$terminals[3],cnt,sep=""),con=fConn,sep=" ")        
    writeLines(paste(S$terminals[4],cnt,'_E',sep=""),con=fConn,sep=" ")        
#    tmp = seq(3,length(S$terminals),1)
    writeLines(paste('0 0'),con=fConn,sep=" ")      
#    writeLines(paste(S$terminals[tmp],cnt,'_E',sep=""),con=fConn,sep=" ")      

    writeLines(c(')',' ',S$Model_fet,' '),con=fConn,sep="")        
    writeLines(c('w=',S$Wp[cnt],' '),con=fConn,sep="")        
#    writeLines(c(' w=', S$Wp[cnt],'/',S$NFp[cnt]),con=fConn,sep="")        
    writeLines(c(' l=', S$Lp[cnt]),con=fConn,sep="")        
    writeLines(c(' nf=', S$NFp[cnt]),con=fConn,sep="")        
    writeLines(paste(' ',names(S$devparams_fet),'=',unlist(S$devparams_fet),sep=""),con=fConn,sep="") 
    writeLines('\n',con=fConn,sep="")    }


    ## #########################################
    ## SBLK RESISTORS
    ## #########################################

#    writeLines('\n',con=fConn,sep="")    
#   writeLines(c('RD',cnt,'(d',cnt,'_E d',cnt,' 0) sblkndres '),con=fConn,sep="")        
##    writeLines(c('RD',cnt,'(d',cnt,'_E d',cnt,' vnw) sblkpdres '),con=fConn,sep="")        
##    writeLines(c('w=',S$Wp[cnt],' '),con=fConn,sep="")        
#    writeLines(c(' w=', S$Wp[cnt],'*',S$NFp[cnt],' '),con=fConn,sep="")        
#    writeLines(c('l=',S$LDOP[cnt],' '),con=fConn,sep="")
#    writeLines(c('esdoxide=',esdoxide,' '),con=fConn,sep="")
#    writeLines('\n',con=fConn,sep="")        

#    writeLines(c('RS',cnt,'(s',cnt,'_E s',cnt,' 0) sblkndres '),con=fConn,sep="")        
##    writeLines(c('RS',cnt,'(s',cnt,'_E s',cnt,' vnw) sblkpdres '),con=fConn,sep="")        
##    writeLines(c('w=',S$Wp[cnt],' '),con=fConn,sep="")        
#    writeLines(c(' w=', S$Wp[cnt],'*',S$NFp[cnt],' '),con=fConn,sep="")        
#    writeLines(c('l=',S$LSOP[cnt],' '),con=fConn,sep="")     
#    writeLines(c('esdoxide=',esdoxide,' '),con=fConn,sep="")
# #   writeLines(c('m=',S$NF[cnt],' '),con=fConn,sep="")
#    writeLines('\n',con=fConn,sep="")    

    ## #########################################
    ## VOLTAGE SOURCES
    ## #########################################
    
    for (t in S$terminalsv){
      if ((t %in% 'd') | (t %in% 's')) {
#        writeLines(c('v',t,cnt,paste('(',t,cnt,'_E 0)',sep=""),' vsource dc=v',t,' type=dc\n'),con=fConn,sep="")
        writeLines(c('v',t,cnt,paste('(',t,cnt,' 0)',sep=""),' vsource dc=v',t,' type=dc\n'),con=fConn,sep="")
      }else{
        writeLines(c('v',t,cnt,paste('(',t,cnt,' 0)',sep=""),' vsource dc=v',t,' type=dc\n'),con=fConn,sep="")
      }


    }

    ## #########################################
    ## MAKE DC SIMULATION ANALYSIS
    ## #########################################

    writeLines(c('dc',cnt,' dc '),con=fConn,sep="")

    if (!is.na(match('swp',names(S)))){
      writeLines(c('param=v',S$swp[[1]],' start=',S$swp[[2]][1],' stop=',S$swp[[2]][2],' step=',S$swp[[2]][3]),con=fConn,sep="")
    }

    writeLines(' maxiters=150 maxsteps=10000 annotate=status\n',con=fConn,sep="")

    ## #########################################
    ## SAVE DATA TO A FILE
    ## #########################################
    
    writeLines(c('print '),con=fConn,sep="")
    writeLines(c(' ',S$Wp[cnt],',',S$Lp[cnt],',',S$NFp[cnt],','),con=fConn,sep="")
    writeLines(c(' ',paste('v',setdiff(S$terminals_save,S$swp[1]),',',sep="")),con=fConn,sep="")
    writeLines(c(paste('I(v',S$terminals_save,cnt,')',',',sep=""),'esd_event,','name=dc',cnt,' to= ','"./run_data/dc',cnt,'.txt"'),con=fConn,sep="")
    writeLines('\n\n',con=fConn,sep="")    

  }

  writeLines('\n',con=fConn,sep="")    

  ## #########################################
  ## SIMULATOR OPTIONS
  ## #########################################

  if ('temperature' %in% names(S)){
    temperature = S$temperature
  }else{
    temperature = 27
  }

  writeLines(c('simulatorOptions options temp=',temperature,' reltol=1e-3 vabstol=1e-6 iabstol=1e-12 tnom=27 scalem=1.0 scale=1.0 gmin=1e-13 rforce=1 maxnotes=5 maxwarns=5  digits=5 cols=80 pivrel=1e-3\n'),con=fConn,sep="")
  writeLines('\n\n',con=fConn,sep="")
  writeLines('oppoint info what=oppoint where=file file="op.txt"\n',con=fConn,sep="")
  writeLines('modelParameter info what=models where=file file="model.txt"\n',con=fConn,sep="")
  writeLines('instParameter  info what=inst where=file file="inst.txt"\n',con=fConn,sep="")
  writeLines('outputParameter info what=output where=file file="output.txt"\n',con=fConn,sep="")
  writeLines('designParamVals info what=parameters where=file file="design.txt"\n',con=fConn,sep="")
  writeLines('primitives info what=primitives where=file file="prim.txt"\n',con=fConn,sep="")
  writeLines('subckts info what=subckts  where=file file="sub.txt"\n',con=fConn,sep="")
  
  close(fConn)

  ## RUN SPECTRE 

  system('spectre run.scs -f psfascii +l mylog.txt >> /dev/null')

  ## NOW START PARSING THE DATA
  filelist = list.files('./run_data',pattern="*.txt",full.names=T)
  cnt = 0
  dt = data.frame()
  for (f in filelist){
    d = data.frame()
    d = read.table(f,skip=6,header=TRUE,sep="",blank.lines.skip=TRUE)
    cnt = cnt + 1
    ##d['W']  = S$W[cnt]
    ##d['L']  = S$L[cnt]
    ##d['NF'] = S$NF[cnt]
    ## Change the column names in 3 steps
    colnames(d) = gsub("^I\\.v","I",colnames(d))
    colnames(d) = gsub("[0-9]+\\.$","",colnames(d))
    colnames(d) = gsub("\\_[0-9]+$","",colnames(d))
    
    ##colnames(d)[seq(2,length(names(d)))] = gsub("[v . 0-9]", "", colnames(d)[seq(2,length(names(d)))])
    dt = rbind(dt,d)
    
  }

  #print(dt)
  dt['dim']    = paste('WxLxNF=',dt$W*1e6,'x',dt$L*1e6,'x',dt$NF,sep="")
  return(dt)
}

csv1_esd_data_analysis_v2.r

#rm(list=ls());
graphics.off();
source("./diff3_func_v1.R")
####### -----> geometry parameters
#lsop= 0.32e-6
#ldop= 0.5e-6
####### -----> plot switches
## ## Data overlay
sim_plot ='y'
data_plot='y'
fit_plot='n'
plt_ron='n'
plt_vhold='n'
fit_max=20      ## Max value of Voltage axis

TLP_Type=c('100ns')


########################################################
########## The Code starts here. Do not edit below this.
########################################################
####### -----> Measured Data reading and slicing 
df <- data.frame()
#fls <- list.files(path="/proj/esd_cad/users/vishal/work/180BCDLite/Data/DC/16V", pattern="*.csv",full.names=T)
fls <- list.files(path="C:\\Users\\sanja\\Desktop\\130gf\\130gf\\130BCDLiteGen2\\Extraction\\data\\DC", pattern="*.csv",full.names=T)


for (file in fls) {
dtmp <- data.frame()
dtmp <- read.csv(file,header=T,skip=1)
#dtmp <- read.table(file,header=T,sep="\t",skip=20)
names <-  colsplit(file,"_",c("d","Device","L","W","NF","sn"))
dtmp[c("d","Device","L","W","NF","sn")] <- NA
dtmp$d <- gsub('/','',names[1])
dtmp$Device <- gsub('/','',names[2])
#dtmp$L <- as.numeric(gsub('L0P','0.',(gsub('L','',names[3]))))
dtmp$W <- as.numeric(gsub('W','',names[3]))
dtmp$L <- as.numeric(gsub('L','',names[4]))
dtmp$NF <- as.numeric(gsub('NF','',names[5]))
#dtmp$Dw <- as.numeric(gsub('D0P','0.',names[6]))
#dtmp['Dw1'] <- gsub('D','',names[6])
#dtmp$Dw <- as.numeric(gsub('P','.',dtmp$Dw1))
dtmp$sn <- gsub('.csv','',names[6])
#tmp$NF <- as.numeric(gsub('NF','',dtmp$NF))
#dtmp$sn <- gsub('.sbd','',names[6])

colnames(dtmp)[2] <- "V_TLP"
colnames(dtmp)[3] <- "I_TLP"
colnames(dtmp)[4] <- "I_Leak"

df <- rbind(df,dtmp)
}
#colnames(df)[1] <- 'VDD_V'
#colnames(df)[2] <- 'VDD_I'

colnames(df)[2] <- "V_TLP"
colnames(df)[3] <- "I_TLP"
colnames(df)[4] <- "I_Leak"


#df['AF'] <- df$W*df$L
#df['PF'] <- 2*(df$W+df$L)
df['TW'] <- df$FW*df$NF
df <- subset(df,df$sn==c('S1'))
#df$Area=paste(df$Area,'p',sep='')
#df$Perimeter=paste(df$Perimeter,'u',sep='')
#df['VRs']<- abs(df$I_VDD)*4
#colnames(df) <- gsub("Measurement.","",colnames(df))
#colnames(df) <- gsub(".Mean.","",colnames(df))
#df=subset(df, df$Perimeter %in% TotalWidth_array, drop=T)

#df <- subset(df,df$Area %in% c("50","100") )
#df <- subset(df,df$L==9.504 & df$W ==0.48)


####### ------> Data Ploting section

p <- ggplot()
x11(type='Xlib', width=10, height=10)
p <- p + theme_bw()
p <- p + theme(axis.title.x = element_text(face="bold", colour="#990000", size=20),
               axis.title.y = element_text(face="bold", colour="#990000", size=12,angle=90),
               axis.text.x  = element_text(face="bold", color="black"   , angle=0, hjust=0.7, size=20),
               axis.text.y  = element_text(face="bold", color="black"   , size=20),
               strip.text.x = element_text(size = 16, colour = "black", angle = 0),
               legend.text      = element_text(size=14),
               legend.position  = "top",
               legend.title     = element_text(size=14),
               panel.grid.major = element_line(colour = 'black', linetype = 'solid',size=0.8),
               panel.grid.minor = element_line(colour = NA),
               panel.background = element_rect(colour = 'white'),
               panel.border     = element_rect(size=2,color="black"),
               plot.title       = element_text(size=10,face="bold")
               ##title            = element_text(expression(dim_str))

)
p1<- p

if (data_plot=='y'){
  
 ## p1=p1+geom_point(data=df, aes(x=Vtlp, y=Itlp, color=factor(TLP)), size=1, shape=0.5)
# p1=p1+geom_point(data=subset(df, df$Perimeter %in% c("50u","100u","200u","300u","400u","500u","600u")), aes(x=Vtlp, y=Itlp, color=factor(Perimeter)), size=1, shape=0.5)
#p1=p1+geom_point(data=df, aes(x=abs(V_VDD), y=abs(I_VDD)))#, color=factor(Area),shape=factor(NF)), size=2)
#vas#p1=p1+geom_point(data=df, aes(x=abs(TLP.V.VOLTS.), y=abs(TLP.I.AMPS.), color=factor(NF),shape=factor(sn)), size=1)
#p1=p1+geom_point(data=df, aes(x=abs(V_C), y=abs(I_C), color=factor(NF),shape=factor(sn)), size=1)
#p1=p1+geom_point(data=df, aes(x=abs(VDD_V), y=abs(VDD_I), color=factor(NF),shape=factor(W)), size=2.5)
p1=p1+geom_point(data=df, aes(x=abs(V_TLP), y=abs(I_TLP)),color='red', size=1.5)
# p1=p1+geom_point(data=df, aes(x=abs(V_VDD)-VRs, y=abs(I_VDD), color=factor(sn)), size=1.5)
# p1=p1+geom_point(data=df, aes(x=voltage, y=current, color=factor(Area)), size=1.5)
# p1=ggplot(data=df, aes(x=TLP.V.VOLTS., y=TLP.I.AMPS., color=factor(Area)), size=1.0)+geom_path()+geom_point()
#  p1=p1+geom_point(data=df, aes(x=Vtlp, y=Itlp, color=factor(Macro)), size=1, shape=0.5)
#	 p1=p1+ggtitle(df$Dev)
}

# ---> Simulation


if (sim_plot=='y'){
  df_sim=read.table("sim_relHP.dat",header= TRUE,sep=";")
  ##df_sim=subset(df_sim, df_sim$TLP %in% c("100ns") )
  df_sim['TW']=(df_sim$TotalWidth)
  df_sim$L = df_sim$L*1e6
  df_sim['FW']=(df_sim$TW/df_sim$NF)
  #  p1=p1+geom_line(data=df_sim, aes(x=abs(vd), y=abs(Id)),color="black", size=0.3)
  p1=p1+geom_line(data=df_sim, aes(x=abs(vd), y=abs(Id)),color='red', size=1.5)
  ##p1=p1+geom_line(data=df_sim, aes(x=abs(vd), y=abs(Id),color=factor(TLP)), size=0.5)
}
#p1=p1+facet_wrap(~NF, scales="free")
#p1=p1+facet_wrap(~L, scales="free")
#p1=p1+facet_wrap(~NF, scales="free")
#p1=p1+facet_wrap(~TLP, scales="free")
#p1=p1+scale_x_continuous(limits = c(0,30))
#p1=p1+scale_y_continuous(limits = c(0,4.1))
#p1=p1+scale_y_log10()
#print(p1)

### ---> other ploting options
#postscript(file="pfet_mrg_30ns.eps",
#                     paper="special",
#                     width=5,
#                     height=6,
#                     horizontal=FALSE)
#
#    plot(p)
##   dev.copy(pdf,'p.pdf')
#   dev.off()


### MRG settings
p1 <- p1 + scale_color_manual(name="", values=c("red","blue","black","brown","green4","magenta"))

p1 <- p1 + xlab('TLP_Voltage (V)') + ylab('TLP_Current (A)')
print(p1)

#ggsave(file="./180BCDLite_12V_mrg.png",plot=p1)
#ggsave(file="./180BCDLite_12v_mrg.eps",plot=p1)
#ggsave(file="./180BCDLite_12v_mrg.pdf",plot=p1)

diff3_func_v1.R

diff3_func_v1 <- function(x,y){
  h    = x[2] - x[1]
  leny = length(y)
  dy_dx = numeric(leny)
  for (cnt in seq(1:length(y))){
    
    if (cnt == 1){dy_dx[cnt] = (y[2] - y[1])/h; next}
    
#    if (cnt == length(y)){dy_dx[cnt] = (y[leny] - y[leny-1])/(x[leny] - x[leny-1]); next}
    if (cnt == length(y)){dy_dx[cnt] = (y[leny] - y[leny-1])/h; next}
    
#    dy_dx[cnt] = (y[cnt+1] - y[cnt-1])/(x[cnt+1] - x[cnt-1])
    dy_dx[cnt] = (y[cnt+1] - y[cnt-1])/(2*h)
    
  }
  
  ##return(matrix(rbind(x,dy_dx),nrow=length(x),ncol=2))
  return(dy_dx)
  
}

I'm trying to run by loading the below library packages,

library(plyr)
library(ggplot2)
library(reshape2)
library(Hmisc)
library(Spectre)

And calling the main R file,

source("./simESDFET_v3_ys.R")

The Error message that I'm getting is,

IDVGLIN
Corner:tt
ESD EVENT: 1 
1Error in `[<-.data.frame`(`*tmp*`, "dim", value = "WxLxNF=xx") : 
  replacement has 1 row, data has 0
In addition: Warning message:
In for (i in seq_along(cenv$extra)) { :
 
 Error in `[<-.data.frame`(`*tmp*`, "dim", value = "WxLxNF=xx") : 
  replacement has 1 row, data has 0

I'm not sure if the error is occurring the data frame since it is working well when I invoke R from commandline.

On Error traceback,

8.
stop(sprintf(ngettext(N, "replacement has %d row, data has %d", 
    "replacement has %d rows, data has %d"), N, n), domain = NA) 
7.
`[<-.data.frame`(`*tmp*`, "dim", value = "WxLxNF=xx") at simDev_func_v4_sblk.R#245
6.
`[<-`(`*tmp*`, "dim", value = "WxLxNF=xx") at simDev_func_v4_sblk.R#245
5.
simDev_func_v4_sblk(S) at simESDFET_v3_ys.R#56
4.
eval(ei, envir) 
3.
eval(ei, envir) 
2.
withVisible(eval(ei, envir)) 
1.
source("./simESDFET_v3_ys.R")

I'm sorry for the bigger code and explanation.

This topic was automatically closed 21 days after the last reply. New replies are no longer allowed.