df <- data.frame(DAY = character(), ID = character())
我正在运行(for i in DAYS[i])
并获取每天的ID并将其存储在数据框中
df <- rbind(df, data.frame(ID = IDs))
我想在循环中的每一行的第二列中添加DAY[i]
。
我该怎么做?
答案 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