簡體   English   中英

如何為這些向量創建 For 循環?

[英]How do I create a For-Loop for these vectors?

這是我當前的代碼(我是新手!)。 雖然它可以完成這項工作,但我很想找到更有效的代碼。

day1_av <- tapply(day1$lots_available, day1$hour, mean) %>% data.frame() 
day2_av <- tapply(day2$lots_available, day2$hour, mean) %>% data.frame() 
day3_av <- tapply(day3$lots_available, day3$hour, mean) %>% data.frame()
day4_av <- tapply(day4$lots_available, day4$hour, mean) %>% data.frame() 
day5_av <- tapply(day5$lots_available, day5$hour, mean) %>% data.frame() 
day6_av <- tapply(day6$lots_available, day6$hour, mean) %>% data.frame() 
day7_av <- tapply(day7$lots_available, day7$hour, mean) %>% data.frame()
day_av <- cbind(day1_av, day2_av, day3_av, day4_av, day5_av, day6_av, day7_av)
day_av

有沒有辦法在 R 中創建一個for 循環並從中創建一個數據框 day_av? 我試過這個:

day_av <- data.frame()
for(i in c(1:7)){
day[i]_av <- tapply(day[i]$lots_available, day[i]$hour, mean) %>% data.frame()
day_av <- rbind(day_av, day[i]_av) 

但方括號似乎並沒有傳遞信息。 感謝您的幫助,謝謝~

您可以將所有數據框放在一個列表中,然后對它們使用tapply

output <- do.call(cbind, lapply(mget(paste0('day', 1:7)) function(x)
                         tapply(x$lots_available, x$hour, mean)))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM