【发布时间】:2016-08-02 16:38:50
【问题描述】:
我现在正在处理输入数据框:
Asset Sector Currency MarketValue
1 Financial USD 100000
2 Financial USD 100000
...
100 Financial USD 100000
虽然现在我想在数据框中添加一行但具有不同的扇区:
101 Energy USD 100000
我现在正在尝试代码:
newSector <- rep(input[95,])
newSector$Sector <- "Energy"
input <- rbind(input,newSector)
但是,从read.csv2() 开始,扇区列被读取为整数类型,而newSector$Sector <- "Energy" 只是将单元格更改为字符类型“能量”,因此我无法将rbind 它们放在一起。 R 报告错误:“无效因子级别,NA 生成”。
我尝试执行 strtoi 和 as.integer 但它报告“强制引入的 NA”。
有人可以帮忙吗?非常感谢!
【问题讨论】:
-
您以不正确的方式引入新关卡。先试试
levels(input$Sector) = c(levels(input$Sector), "Energy")。你确定你甚至需要这里的因素吗? -
嗨皮埃尔,谢谢你告诉我这个方法。它适用于
rbind新行,但后来我发现我不应该只对新行执行rep,因为它保留了“财务”的值,而只是将名称更改为“能源”,这将不匹配我稍后使用“财务”和“能源”的相关矩阵的计算。我使用了@Uwe Block 的方法,它让我得到了我想要的结果。谢谢!
标签: r text dataframe integer read.csv