R 中的错​​误:我应该使用 rep() 但我已经这样做了

Error in R: I should use rep() but I already do

我在 R 中使用了一个小代码:

dat$colour<-rep(rainbow(4)) #you get a warning if you not have a multiple of 4 records, but that is ok.

dat 由七行组成。我添加了 rep() 以确保颜色可以重复,即使七不是四的倍数。但是,我仍然收到以下错误:

Error in set(x, j = name, value = value) : Supplied 4 items to be assigned to 7 items of column 'colour'. If you wish to 'recycle' the RHS please use rep() to make this intent clear to readers of your code.

重现:

dat <- data.table('Year' = c(2010, 2011, 2012, 2013, 2014, 2015, 2016))
dat$colour<-rep(rainbow(4))

我真的很重视帮助,脚本是自动的,但现在给我这个错误。 我刚换了一台新电脑,问题可能出在这个或那个的版本不正确。

谢谢!

您可以使用 rep_len:

dat$colour <- rep_len(rainbow(4), nrow(dat))