2017-06-22 68 views
0

我試圖過濾一些數據,R函數中的相對於數據框。但在第二個函數中,它給了我以下錯誤:不能更改'df'的鎖定綁定的值。 任何人都可以幫我嗎?R錯誤 - 無法更改'df'的鎖定綁定的值

順便說一句,這是代碼:

load.data = function(x,dir = ".") { 
dados_reais <<- read.csv(paste(dir,x,sep="/"), header = FALSE, sep = "\t", dec = ".", col.names = c("Seq","Allele","Peptide","Identity","Pos","Core","Core-Rel", "Um-log50k(aff)","Affinity(nM)","Rank","Exp_Bind","Binding Level")) 
} 

filter.data = function(x, dir = ".") {load.data(x, dir) df <<- dados_reais[,c(1,2,3,4,9,10,12)} 

回答

2

你應該避免<<-。這會產生與功能語言的精神背道而馳的副作用。嘗試

load.data <- function(x,dir = ".") { 
    read.csv(paste(dir,x,sep="/"), header = FALSE, sep = "\t", dec = ".", col.names = c("Seq","Allele","Peptide","Identity","Pos","Core","Core-Rel", "Um-log50k(aff)","Affinity(nM)","Rank","Exp_Bind","Binding Level")) 
} 

filter.data <- function(x, dir = ".") { 
    load.data(x, dir)[,c(1,2,3,4,9,10,12)] 
} 

df <- filter.data("mypath.csv") 
+0

它就像你說的那樣工作!謝謝! –