for循环用于创建多个数据帧和分配值

时间:2017-06-15 19:06:46

标签: r for-loop dplyr

我想创建多个数据框并根据年份分配它们。我看过其他帖子,但我无法为我的案例复制它。 例如,

a <- c(1,2,3,4)
b <- c('kk','km','ll','k3')
time <- (2001,2001,2002,2003)
df <- data.frame(a,b,time)
myvalues <- c(2001,2002,2003)
for (i in 1:3) 
{ y[[i]]<- df[df$time=myvalues[[i]],}

我想在2001,2002和2003年创建三个数据帧y1,y2,y3。有关如何使用for循环的任何建议吗?

1 个答案:

答案 0 :(得分:1)

为此assign()功能。有关语法,请参阅?assign()

a <- c(1,2,3,4)
b <- c("kk","km","ll","k3")
time <- c(2001,2001,2002,2003)
df <- data.frame(a,b,time)
myvalues <- c(2001,2002,2003)

for (i in 1:3) {
  assign(paste0("y",i), df[df$time==myvalues[i],])
  }

有关实现此目的的更多方法,请参阅here