在for循环中向行添加行

时间:2015-02-28 20:54:31

标签: r dataframe

我有一些代码可以创建一个包含2列的数据帧我想将数据从for循环写入此数据帧...我该怎么做?

df<-data.frame(id = numeric(), nobs = numeric())
  setwd(directory)
  files <-list.files(directory)
  files <-files[id]
  for (i in files) {
    #print(i)
    file <- read.csv(i)
    x <- nrow(file)
    num =  as.numeric(gsub(".csv","",i))
    y <- sprintf("%i %i", num, x)
    #print(y)

    df <- rbind(df,num,x)
  }

1 个答案:

答案 0 :(得分:1)

要使用循环在data.frame中添加行,您可以使用以下代码修改代码:

df<-data.frame(id = numeric(), nobs = numeric())
for (i in 1:1000) {
    df[i,] <- c(runif(1),runif(1))
}

但是,如果您知道所需的行数,则强烈建议预先分配内存:

files <- 1:1000
df<-data.frame(id = numeric(length(files)), nobs = numeric(length(files)))
for (i in 1:length(files)) {
    df[i,] <- c(runif(1),runif(1))
}