在R编程中将特定区域从字符更改为数字

时间:2018-02-20 20:01:24

标签: r dataframe rstudio

我使用Rstudio并从在线导入csv文件。

data <- read.csv("http://databank.worldbank.org/data/download/GDP.csv", stringsAsFactors = FALSE)

在文件中,列X.3的类型为字符。

我想将行(5到202)从字符转换为数字,以便我可以计算它的平均值。

所以,当我在下面使用这一行时。它仍然是角色

data[c(5:202),"X.3"] <- as.numeric(gsub(",","",data[c(5:202),"X.3"]))

当我输入class(data[10,"X.3"])时,它会将输出显示为character

我可以使用

将整列转换为数字
data[,"X.3"] <- as.numeric(gsub(",","",data[,"X.3"]))

但我想只转换特定的行,即从5到202,因为列的其他行变为N/A。我不知道该怎么做。

1 个答案:

答案 0 :(得分:1)

对您的代码进行更改可以帮助您将其设为数字​​:

data <- read.csv("http://databank.worldbank.org/data/download/GDP.csv", header = T, stringsAsFactors = FALSE, skip = 3)
# skipping first 3 rows which is just empty space/junk and defining the one as header

data <- data[-1,]
#removing the first line after the header 

data$US.dollars. <- as.numeric(gsub(',','',data$US.dollars.))
#replacing scientific comma with blank to convert the character to numeric

hist(data$US.dollars.) #sample plot

如评论中所述,您不能将列的一部分保留为字符和部分数字,因为R不允许这样做,并且它强制类型转换为更高的顺序,在这种情况下是数字到字符。您可以在此处阅读有关Implicit Coercion of R

的更多信息