Похоже, этот очень простой маневр используется для меня, а теперь его просто нет. Фиктивная версия задачи:Повторить вектор, чтобы заполнить столбец в кадре данных
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
Я ожидал этого, чтобы работать со следующим результатом:
x y z
1 1 1 1
2 2 2 2
3 3 3 3
4 4 4 4
5 5 5 1
Т.е. более короткий вектор должен начинать автоматически повторяться. Я почти уверен, что это работало для меня (это в сценарии, который я запускал сто раз раньше, без проблем). Теперь я даже не могу заставить приведенный выше фиктивный пример работать так, как я хочу. Что мне не хватает?
Спасибо. Ты был прав. Я думал, что это была какая-то странная ошибка, потому что, как я уже сказал, я запускал этот скрипт сто раз. И так как я запускаю скрипт на наборах данных разных размеров, я обнаружил маловероятным, что количество строк данных было последовательно кратно длине вектора. Но я получаю. По дизайну. Предполагалось, что это так, поэтому я в конце концов обнаружил, что корень ошибки был расположен где-то в другом месте. –