使用循环按属性分隔数据库

时间:2018-02-11 04:50:28

标签: r loops

我正在尝试使用R中的循环按年分隔数据库,但是在尝试保存多个结果时我遇到了麻烦。我的代码就是这个

d<- read.csv("BD_070218.csv")

results<-NULL
for(i in 1990:2015){
  ano<-d[which(d$year==i),]
  results[[i]] <- ano

}

1 个答案:

答案 0 :(得分:0)

我想我理解你的问题。 两种可能的方法。

# Set a seed
set.seed(1)

# Create example dataframe
d <- data.frame(
    a=1:120,
    year=sample(1990:2015,120,replace = TRUE),
    d=sample(letters,120,replace = TRUE)
    )

# Method 1: Nested dataframes in a list
results<-list()
for(i in 1990:2015){
  ano<-d[which(d$year==i),]
  eval(parse(text=paste("results$year_",  i, " <- ano",  sep="")))
}
str(results)
results[["year_2012"]]

# Method 2: individual dataframes
for(i in 1990:2015){
  ano<-d[which(d$year==i),]
  assign(paste0("year_",i), ano, envir = .GlobalEnv)
}
str(year_2000)