2015-05-22 38 views
-2
df <- data.frame(DAY = character(), ID = character()) 

我運行一個(for i in DAYS[i])並獲得標識的每一天,將它們存儲在數據幀如何爲數據框中的每列添加日期?

df <- rbind(df, data.frame(ID = IDs)) 

我想在第二列中添加DAY[i]在每個行中的循環。 我該怎麼做?

+0

它不是創建一個data.frame的正確方法。更好地運行循環並在循環內創建向量。然後在循環之後,從不同的向量創建data.frame。 –

+0

你不需要任何循環。 R不是Java。請向我們展示'DAY'以及期望的結果應該如何。 –

+0

輸入:第1天ID第2天 輸出:ID DAY其中DAY是第1天第2天與之間 –

回答

1

由於@Pascal說,這不是創造R. R A的數據幀的最佳方式是向量化的語言,所以一般不需要for循環。

我假設每個ID都是唯一的,所以你可以從創建ID的矢量1到10:

ID <- 1:10 

然後,你需要爲你DAY秒的載體可以是相同長度你的ID,或者可以是recycled(即如果你只有一定數量的天數以相同的順序重複,你可以使用一個更小的向量)。使用c()來創建矢量與多個值:

DAY <- c(1, 2, 9, 4, 4) 
df <- data.frame(ID, DAY) 
df 

# ID DAY 
# 1 1 1 
# 2 2 2 
# 3 3 9 
# 4 4 4 
# 5 5 4 
# 6 6 1 
# 7 7 2 
# 8 8 9 
# 9 9 4 
# 10 10 4 

或者與DAY載體,包括獨特的價值觀:

DAY <- sample(1:100, 10, replace = TRUE) 
df <- data.frame(ID, DAY) 
df 
#  ID DAY 
# 1 1 61 
# 2 2 30 
# 3 3 32 
# 4 4 97 
# 5 5 32 
# 6 6 74 
# 7 7 97 
# 8 8 73 
# 9 9 16 
# 10 10 98 
相關問題