为什么我指定为数字的R中的数据框列会更改为字符?
我使用以下代码初始化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创建一个原子向量,它只能有一种类型(这里,所有内容都强制为字符) 您应该传递一个列表(
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))