0

数据链: 数据

代码:

 ccfsisims <- read.csv(file = "F:/Purdue University/RA_Position/PhD_ResearchandDissert/PhD_Draft/GTAP-CGE/GTAP_NewAggDatabase/NewFiles/GTAP_ConsIndex.csv", header=TRUE, sep=",", na.string="NA", dec=".", strip.white=TRUE)
 ccfsirsts <- as.data.frame(ccfsisims)
 ccfsirsts[7:25] <- sapply(ccfsirsts[7:25],as.numeric)
 ccfsirsts <- droplevels(ccfsirsts)
 ccfsirsts <- transform(ccfsirsts,sres=factor(sres,levels=unique(sres)))
 ccfsirsts[1:5,]

问题:

因此,如果您检查“pSVIPM”列,则数据框“ccfsirsts”中显示的值与实际保存在 .csv 文件中的值不同。上传不同的数据集时会出现此问题。

在最初的上传,即“ccfsisims”中,一切似乎都检查出来了。问题发生在之后。

关于为什么会发生这种情况的任何想法?

4

1 回答 1

3

当您加载ccfsisimsstr(ccfsisims )...(养成这样做的习惯)

你会看到这pSVIPM是一个因素。因此as.numeric,只需按照级别出现的顺序将因子更改为数字。

因为如果你看你的 csv 你#DIV/0!那里有字符。

自己试试:

> length(ccfsisims$pSVIPM[ccfsisims$pSVIPM == "#DIV/0!"])
[1] 350
于 2013-02-14T17:45:11.213 回答