アルンの答えが機能する理由と代替案は次のとおりです。
Rデータフレームは各列で異なる変数タイプを持つ可能性があるため、データフレーム行にベクトルを割り当てることは避けてください。列に数値、文字列、および因子が含まれていると想像してください。その場合、そのデータフレームの行はベクトルではなく(ベクトルはすべて1つのタイプ、つまりすべての数値またはすべての因子でなければならないため)、リストではありません。Rがリストを期待する場所にベクトルを割り当てようとすると、悪いことが起こる可能性があります。
ただし、リストをデータフレーム行に割り当てることができます。例えば:
> df <- data.frame(id=1:5, x1=1, x2=2)
> df
id x1 x2
1 1 1 2
2 2 1 2
3 3 1 2
4 4 1 2
5 5 1 2
> row2 <- list(x1=3, x2=4)
> df[2, c('x1','x2')] <- row2
> df
id x1 x2
1 1 1 2
2 2 3 4
3 3 1 2
4 4 1 2
5 5 1 2
または、(例のように)すべてが数値であることがわかっている場合は、データフレームの代わりに行列を作成します。次に、ベクトルを行列行に割り当てることができます。問題ありません。
> mat <- matrix(c(1:5, rep(1,5), rep(2,5)), 5, 3)
> colnames(mat) <- c("id","x1","x2")
> mat
id x1 x2
[1,] 1 1 2
[2,] 2 1 2
[3,] 3 1 2
[4,] 4 1 2
[5,] 5 1 2
> row2 <- c(3,4)
> mat[2, c("x1","x2")] <- row2
> mat
id x1 x2
[1,] 1 1 2
[2,] 2 3 4
[3,] 3 1 2
[4,] 4 1 2
[5,] 5 1 2