私のために働いていたこの非常に単純な操作のように見えますが、今はそれほど簡単ではありません。問題のダミー版:データフレーム内の列を埋めるためにベクトルを繰り返す
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
すなわち、より短いベクトルは自動的に自動的に繰り返されるはずです。私はこれが私のために働いていたことはかなり確かです(それは前に何百回も問題なく実行していたスクリプトにあります)。今私は私がしたいのと同じように動作する上のダミーの例を得ることができません。私は何が欠けていますか?
ありがとうございます。あなたは正しかった。私は前にこのスクリプトを何百回も実行したと言っていたので、何か奇妙なエラーだと思った。私はさまざまなサイズのデータセットでスクリプトを実行していたため、データフレームの行数は一貫してベクトルの長さの倍数になっているとは思われませんでした。しかし、私はそれが判明した。意図的に。そのようになっていたので、私は最終的にエラーの根源がどこか他の場所にあることを発見しました。 –