Повторите вектор, чтобы заполнить столбец во фрейме данных
Похоже, этот очень простой маневр раньше работал на меня, а теперь просто нет. Фиктивная версия проблемы:
df <- data.frame(x = 1:5) # create simple dataframe
df
x
1 1
2 2
3 3
4 4
5 5
df$y <- c(1:5) # adding a new column with a vector of the exact same length. Works out like it should
df
x y
1 1 1
2 2 2
3 3 3
4 4 4
5 5 5
df$z <- c(1:4) # trying to add a new colum, this time with a vector with less elements than there are rows in the dataframe.
Error in `df <- data.frame(x = 1:5) # create simple dataframe
df
x
1 1
2 2
3 3
4 4
5 5
df$y <- c(1:5) # adding a new column with a vector of the exact same length. Works out like it should
df
x y
1 1 1
2 2 2
3 3 3
4 4 4
5 5 5
df$z <- c(1:4) # trying to add a new colum, this time with a vector with less elements than there are rows in the dataframe.
Error in `$<-.data.frame`(`*tmp*`, "z", value = 1:4) :
replacement has 4 rows, data has 5
lt;-.data.frame`(`*tmp*`, "z", value = 1:4) :
replacement has 4 rows, data has 5
Я ожидал, что это сработает со следующим результатом:
x y z
1 1 1 1
2 2 2 2
3 3 3 3
4 4 4 4
5 5 5 1
То есть более короткий вектор должен просто начать повторяться автоматически. Я почти уверен, что раньше это работало для меня (это сценарий, который я запускал сто раз без проблем). Теперь я даже не могу заставить приведенный выше фиктивный пример работать так, как я хочу. Что мне не хватает?