解决在r中使用"row_to_names"后获取因子变量而不是整数的问题



系列模型,用于预测收益率,并将其放入其他公式中以生成现金租金预测。

我想在数据帧的列中显示县的名称,在行中显示年份。

所以我有一个包含3个县名称的向量,所有元素都来自其他数据帧。我想把它们放在所有的数据帧中,并命名列,这样我就把它们提取出来了。现在我只举一个例子。

ct_name <- c("Adams","Boone","Champaign")

然后我想把它和我预测的收益数据帧表结合起来。

library(janitor)
table<- matrix(1:6,nrow = 2, ncol = 3, byrow = FALSE)
rownames(table) <- c("2015", "2016")
table <- rbind(ct_name, table)
table <- row_to_names(table, row_number = 1)
table <- data.frame(table)

矩阵中有整数。然而,在使用row_to_names()之后,这一切都变成了因素或逻辑。我该如何解决这个问题。我尝试了is.numeric() and is.integer(),但都失败了,我需要它们是整数才能进行计算!

我该怎么办?谢谢你们!

您的县名称为空,但如果其中有实际名称,则应执行以下操作:

colnames(table) <- ct_name

如果您想将矩阵更改为数据帧,只需执行

table <- data.frame(table)

此外,table是R中的一个函数,因此最好用不同的名称命名对象。

不清楚为什么要使用rbind()将列名添加为表中的行,然后使用row_to_names()创建列名。一旦您将字符向量rbind()转换为整数矩阵,它将强制矩阵中的所有数据转换为字符。罗纳克的回答似乎是一个很好的解决方案。

最新更新