为什么我指定为数字的R中的数据框列会更改为字符?

为什么我指定为数字的R中的数据框列会更改为字符?,r,dataframe,type-conversion,R,Dataframe,Type Conversion,我使用以下代码初始化R中的数据帧: pcts <- data.frame(group=character(), bonus.type=character(), success.rate=double(), stringsAsFactors = FALSE) pcts尝试单独运行命令的右侧,而不将其分配给pcts 这就是强制发生的地方--c创建一个原子向量,它只能有一种类型(这里,所有内容都强制为字符) 您应该传递一个列表(

我使用以下代码初始化R中的数据帧:

pcts <- data.frame(group=character(),
           bonus.type=character(),
           success.rate=double(),
           stringsAsFactors = FALSE)

pcts尝试单独运行命令的右侧,而不将其分配给
pcts

这就是强制发生的地方--
c
创建一个原子向量,它只能有一种类型(这里,所有内容都强制为
字符

您应该传递一个
列表
(R中处理多个类型的最基本对象),或者更好地使用
rbind

pcts = rbind(pcts, data.frame(group = paste(varname,gname,sep="="), 
                              bonus.type = btype, 
                              success.rate = pct)) 
c(粘贴(varname,gname,sep=“=”,btype,pct)
是一个字符向量,因为
paste(varname,gname,sep=“=”)
返回一个字符。我建议使用设置的行数预先构建data.frame,并使用
列表
而不是
c
来填充值。类似于
pcts@M.Riebel c(粘贴(varname,gname,sep=“=”),btype,pct)
pcts = rbind(pcts, data.frame(group = paste(varname,gname,sep="="), 
                              bonus.type = btype, 
                              success.rate = pct))