我正在嘗試創建一個數據框(BOS.df),以便探究將在接收實際數據之前執行的未來分析的結構。在這種情況下,可以說有4家餐廳希望運行廣告系列(「餐廳」變量)。廣告系列將持續的天數爲cmp.lngth。我需要隨機數字來表示廣告的收費標準(ra.num)。廣告系列在StartDate上開始。最終,我希望通過每個餐廳的週期創建一個數據框,並通過添加行來爲廣告系列的每一天添加隨機結算編號。通過迭代添加行創建數據框
#Create Data Placeholders
set.seed(123)
Restaurant <- c('B1', 'B2', 'B3', 'B4')
cmp.lngth <- 42
ra.num <- rnorm(cmp.lngth, mean = 100, sd = 10)
StartDate <- as.Date("2017-07-14")
BOS.df <- data.frame(matrix(NA, nrow =0, ncol = 3))
colnames(BOS.df) <- c("Restaurant", "Billings", "Date")
for(i in 1:length(Restaurant)){
for(z in 1:cmp.lngth){
BOS.row <- c(as.character(Restaurant[i]),ra.num[z],StartDate +
cmp.lngth[z]-1)
BOS.df <- rbind(BOS.df, BOS.row)
}
}
我的代碼現在無法正常工作。列名稱不正確,並且數據沒有正確放置(如果有的話)。輸出結果如下:
X.B1. X.94.3952435344779. X.17402.
1 B1 94.3952435344779 17402
2 B1 <NA> <NA>
3 B1 <NA> <NA>
4 B1 <NA> <NA>
5 B1 <NA> <NA>
6 B1 <NA> <NA>
如何獲得正確的輸出?有沒有比使用for循環更有效的方法?
拼寫錯誤'也無濟於事。 'cmp.lngth [z]'沒有意義,因爲'cmp.lngth'是一個單一的數字,而不是一個矢量 - 你可能只需要'z'在這裏。 –
嘿,安德魯。感謝您的反饋。拼寫錯誤來自我將代碼翻譯成我的提交,以便它不是可以遠程識別的。 –