String 将数据帧传递给R-paste()时,R-paste()将作为.numeric()调用?

String 将数据帧传递给R-paste()时,R-paste()将作为.numeric()调用?,string,r,numeric,paste,String,R,Numeric,Paste,与数据帧的行和列选择相结合的Rspaste-函数有一个特殊问题。似乎paste总是使用as.numeric()或类似的功能围绕其输入参数 以下是我所做工作的代码片段: paste(df[1, c("entry1", "entry2")], collapse="; ") 这将传递数据帧df的第一行,其中列“entry1”和“entry2”具有列条目。我假设输出如下: "Auffuellung; Holozaen" 相反,我接收传递的数据帧项的串联数字等价物(不是索引): "1; 5" 在我的

与数据帧的行和列选择相结合的Rs
paste
-函数有一个特殊问题。似乎
paste
总是使用
as.numeric()
或类似的功能围绕其输入参数

以下是我所做工作的代码片段:

paste(df[1, c("entry1", "entry2")], collapse="; ")
这将传递数据帧
df
的第一行,其中列
“entry1”
“entry2”
具有列条目。我假设输出如下:

"Auffuellung; Holozaen"
相反,我接收传递的数据帧项的串联数字等价物(不是索引):

"1; 5"
在我的真实数据库上调用
str(df[1,c(“entry1”,“entry2”)))
会产生以下输出(德语,不足为奇;):

在这种情况下,我做错了什么?到目前为止,我从未遇到过粘贴函数的问题,我也从未想过会发生这样的事情那么,如何解决这个问题并获得正确的串联字符串输出,而不是串联数字等价物?


提前谢谢你

您的问题与您的数据是
因子
变量这一事实有关<代码>粘贴正在粘贴基础的
“整数”
代码。这是令人困惑的,而且对于如何避开它,也不是很明显。您需要使用
unlist()
将它转换为一个向量,它将像execpcted一样工作

例子
df对不起,我没有早点描述它。它是数据框的第一行,包含两列条目。@SimonO101我添加了
str
-输出问题帖子。@SimonO101,我的预期输出是
粘贴后的“Auffuellung;Holozaen”。也许解决方案是以某种方式提取隐藏在dataframe内部的、以某种方式排序的枚举后面的字符串值。我刚刚发现,
read.csv
-函数中有一个
stringsAsFactors
-参数。默认设置为
stringsAsFactors=default.stringsAsFactors()
。在我的例子中,它应该是
stringsAsFactors=FALSE
。这绝对解决了任何问题。请将此添加到您的答案中,我将接受正确的答案。
'data.frame':   1 obs. of  2 variables:
 $ Hauptbestandteile: Factor w/ 38 levels "Auffuellung",..: 1
 $ Chronografie     : Factor w/ 18 levels "Devon","Famennium",..: 5
df <- data.frame( Month = factor(month.name) , Short = factor(month.abb) )
df[ 1 , ]
#    Month Short
#1 January   Jan

paste( df[ 1 , ] , collapse = "; " )
#[1] "5; 5"

paste( unlist( df[ 1 , ] ) , collapse = "; " )
#[1] "January; Jan"