2015-09-27 66 views
-1

我試圖設計for loop,它將返回我的表格的第2行和第3行的差異,但for循環會不斷返回非常大的表格或NAs,無論我做什麼。我如何修改我的for循環?像最終結果一樣將返回與cbind(a.trade, b.trade, c.trade, d.trade, f.trade, g.trade, h.trade, l.trade, m.trade, n.trade, r.trade)相同的結果。謝謝藉助循環功能創建表格

a<- read.csv("2003.csv", header=TRUE) 
b<- read.csv("2004.csv", header=TRUE, na.strings='    -') 
c<- read.csv("2005.csv", header=TRUE) 
d<- read.csv("2006.csv", header=TRUE) 
f<- read.csv("2007.csv", header=TRUE) 
g<- read.csv("2008.csv", header=TRUE) 
h<- read.csv("2009.csv", header=TRUE) 
l<- read.csv("2010.csv", header=TRUE) 
m<- read.csv("2011.csv", header=TRUE) 
n<- read.csv("2012.csv", header=TRUE) 
r<- read.csv("2013.csv", header=TRUE) 

a.trade <- a$Exports- a$General.Imports 
b.trade <- b$Exports- b$General.Imports 
c.trade <- c$Exports- c$General.Imports 
d.trade <- d$Exports- d$General.Imports 
f.trade <- f$Exports- f$General.Imports 
g.trade <- g$Exports- g$General.Imports 
h.trade <- h$Exports- h$General.Imports 
l.trade <- l$Exports- l$General.Imports 
m.trade <- m$Exports- m$General.Imports 
n.trade <- n$Exports- n$General.Imports 
r.trade <- r$Exports- r$General.Imports 
cbind(a.trade, b.trade, c.trade, d.trade, f.trade, 
g.trade, h.trade, l.trade, m.trade, n.trade, r.trade) 


for (i in 2:55, i+5) { 
x<-c(a,b,c,d,f,g,h,l,m,n,r) 
v<-cbind(x[[i+1]]-x[[i+2]]) 
print(v) 
} 
+1

這可能是更好的閱讀所有文件在'list'和做改造。即'files < - list.files('\\ d + .csv'); trade < - sapply(files,function(x){dat < - read.csv(x,stringsAsFactors = FALSE); with(dat,Exports-General.Imports)})' – akrun

+0

閱讀'apply' family,'list。文件功能和列表變量。 – zx8754

+0

但列表文件函數返回字符(0)。我不知道如何解決這個問題。 – user5372470

回答

0
data_frame(year = 2003:2013) %>% 
    group_by(year) %>% 
    do("%s.csv" %>% 
     sprintf(.$year) %>% 
     read.csv) %>% 
    mutate(trade = Exports - Imports) %>% 
    group_by(year) %>% 
    summarize(difference = trade[3] - trade[2])