使用 R 中的循环将行添加到数据框

Adding rows to a dataframe using loop in R

我想使用循环向数据框添加额外的行。我有一个 API 端点列表,可以通过循环循环。循环的每次迭代都将传送一行数据。我无法超越如何获取额外的行(即 i = 2 是我的 df 的第 2 行等等),以便每次迭代都将一行数据添加到仪表板 df。通过我在下面包含的内容,我得到了一个仪表板 df,它是 13 个 obs w/ 0 个变量

dashboard <- data.frame()

for (i in 1:x){
  node <- fromJSON(acct_hotspots_api_ep[i])
  node <- as.data.frame(node)
  
other functions/commands.....

  rewards <- merge(rewards, last24h)
  rewards <- merge(rewards, last7)
  rewards <- merge(rewards, last30)
  rewards <- merge(rewards, last90)
dashboard[i,] <- rewards[1,]
}

正如 alistaire 所建议的,您可以在循环内实现 rbind() 。没有你的数据,很难知道确切的结构,但你可以尝试这样的事情:

# setup your empty df (the 'container')
dashboard <- data.frame()

# setup the loop
for(i in 1:10){

  #~~~~~ step 1: generate your 'rewards' ~~~~~

    # sample 'rewards' data
    rewards <- i * 2

    # and/or your other functions...
    # rewards <- merge(rewards, last24h)
    # rewards <- merge(rewards, last7)
    # rewards <- merge(rewards, last30)
    # rewards <- merge(rewards, last90)

  #~~~~~ step 2: put the rewards into a df ~~~~~
    rewards_df <- data.frame(rewards = rewards,
                            i = i) # sometimes it's handy to include the value of i that got you the result (for troubleshooting or later analysis)

  #~~~~~ step 3: rbind the rewards df to your container ~~~~~
    dashboard <- rbind(dashboard, rewards_df)

}

# view your resulting df
dashboard