我試圖得到一個for循環,產生從的大數據幀多個較小dataframes:誤差內貼for循環
Year <- rep(1995:2012,4)
Name <- rep(LETTERS[1:4],18)
abc <- data.frame(Year,Name)
for (year in 1995:2012) {
assign(paste("dff",year,sep=""), abc[abc$Year == year,])
#paste("dff",year,sep="") <- paste("dff",year,sep="")[with(paste("dff",year,sep=""), order(Name)), ]
}
問題是最後的(註釋)線,註釋掉時拋出一個錯誤:
invalid 'envir' argument of type 'character'
。
我能做些什麼來解決這個問題?我基本上試圖通過列Name
來排序數據幀。
無法對'paste'產生的字符串進行'<-'賦值。 (你沒有在上面的行中做過---你爲此使用了'assign'!)一些想法:(a)在循環之前用'Name'對數據框進行排序。 (b)使用數據框列表來代替:'abc_list = split(abc,abc $ Year)'然後進行排序:'abc_list = lapply(abc_list,function(x)x [order(x $ Name),])) '。例如,請參閱[如何製作數據幀列表](http://stackoverflow.com/questions/17499013/how-do-i-make-a-list-of-data-frames)。 – Gregor