使用 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
我想使用循环向数据框添加额外的行。我有一个 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