如何为数据框中的列的每一行添加日期?

时间:2015-05-22 09:23:01

标签: r loops dataframe

df <- data.frame(DAY = character(), ID = character()) 

我正在运行(for i in DAYS[i])并获取每天的ID并将其存储在数据框中

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

我想在循环中的每一行的第二列中添加DAY[i]。 我该怎么做?

1 个答案:

答案 0 :(得分:1)

正如@Pascal所说,这不是在R中创建数据框架的最佳方式.R是一种矢量化语言,所以通常你不需要for循环。

我假设每个ID都是唯一的,因此您可以创建1到10的ID向量:

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