文字と数字を含むデータフレームを取得し、各行のすべての要素を1つの文字列に連結して、ベクトルに1つの要素として格納したいと思います。例として、文字と数字のデータフレームを作成し、貼り付け関数を使用して最初の行を連結し、値「A1」を返すことを望みます。
df <- data.frame(letters = LETTERS[1:5], numbers = 1:5)
df
## letters numbers
## 1 A 1
## 2 B 2
## 3 C 3
## 4 D 4
## 5 E 5
paste(df[1,], sep =".")
## [1] "1" "1"
したがって、pasteは、行の各要素を、「対応するレベルのインデックス」に対応する整数に、それが因子であるかのように変換し、長さ2のベクトルを保持します。(文字に強制された因子はこのように動作することを私は知っています/信じていますが、Rはdf [1、]を因子としてまったく保存していないため(is.factor()でテスト済み)、それを確認できません実際にはレベルのインデックスです)
is.factor(df[1,])
## [1] FALSE
is.vector(df[1,])
## [1] FALSE
したがって、それがベクトルでない場合、それが奇妙に動作していることは理にかなっていますが、私はそれをベクトルに強制することはできません
> is.vector(as.vector(df[1,]))
[1] FALSE
使用as.character
することは私の試みに役立たなかったようです
誰かがこの振る舞いを説明できますか?