我想将包含字符和数字的数据框的每一行元素都连接成一个字符串,并将其作为单个元素存储在向量中。例如,我创建了一个字母和数字的数据框,然后希望通过paste函数拼接第一行,并返回值"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"
因此,粘贴将行的每个元素转换为整数,该整数对应于“相应级别的索引”,就像它是一个因子一样,并将其保持为长度为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
似乎无法帮助我解决问题。
有人可以解释一下这种行为吗?
stringsAsFactors=FALSE
参数吗? - sebastian-c