[英]add values to r dataframe
我想問我如何添加/追加新的觀察到空 r dataframe。 我將運行一個循環,我想在循環運行時更新這個 dataframe。
例如,我有這個 dataframe:
error <- data.frame(error_code = character(), row_no = character(), sleep_time = character(), time_scrape = character())
我將運行的循環是:
for (i in 1:10) {
if (i %% 2 == 0) {
error_code = i
row_no = i
sleep_time = 60
time_scrape = i
}
error <- error %>%
add_row(error_code = error_code, row_no = row_no, sleep_time = sleep_time, time_scrape = time_scrape)
}
我想根據從循環中獲得的值添加值
我嘗試使用 add_row 但它不起作用。 我應該如何做到這一點,最后,我會得到這樣的東西:(p / s:下表是手動創建的,而不是上面的代碼)
error_code row_no sleep_time time_scrape
1 2 2 60 2
2 4 4 60 4
您可以在一個 go 中定義 data.frame:
i = as.character(seq(2,10,by=2))
data.frame(error_code = i,row_no = i,sleep_time = 60,time_scrape = i)
如果你絕對,真的,必須這樣做,這將是它的工作原理:
error <- data.frame(error_code = character(), row_no = character(), sleep_time = character(), time_scrape = character())
for (i in as.character(seq(2,10,by=2))){
error <- error %>%
add_row(data.frame(error_code = i,
row_no = i,
sleep_time = as.character(60),
time_scrape = i,stringsAsFactors=FALSE))
}
這不是 go 的最佳方法。為什么當它們看起來像數字時你的所有列都是字符?
您可以使用rbind
來解決這個問題,盡管這非常不理想。 來自其他答案的其他解決方案可能會讓我更方便。 但也許你需要循環結構。 所以在這里你 go:
library(dplyr)
error <- data.frame(error_code = character(), row_no = character(), sleep_time = character(), time_scrape = character())
for (i in 1:10) {
if (i %% 2 == 0) {
error_code = i
row_no = i
sleep_time = 60
time_scrape = i
df<-data.frame(error_code, row_no, sleep_time, time_scrape)
error <- rbind(error, df)
}
#error <- rbind(error, df)
}
我認為這應該讓你得到你想要的:
e=c();r=c();s=c();t=c()
for (i in 1:10){
e[i] = 2*i
r[i] = 2*i
t[i] = 2*i
df=data.frame(error_code=e,row_no=r,sleep_time=60,time_scrape=t)
}
}
df
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.