将代表向量添加到总行数不均匀的数据框

Add rep vector to dataframe with uneven total rows

我正在尝试找到一种自动化大型数据集以添加两个因素的方法,但数据可能包含不均匀的行。

我已经尝试使用 'rep' 函数来执行此操作,但这仅在数据框具有偶数时才有效。

x<-c(1,3,5,7,9)
y<-c(2,4,6,8,10)
df<-data.frame(x,y)
df$state<-factor(rep(1:2))   

Error in `$<-.data.frame`(`*tmp*`, state, value = 1:2) : 
replacement has 2 rows, data has 5

如何让 data.frame 将 1 回收到第 5 行而不是出现错误?

rep()length.out参数是一个选项:

df$state<-factor(rep(1:2, length.out = nrow(df)))