在打开精炼中将int字段转换为num

时间:2017-02-21 11:41:34

标签: r

我有这个dataset,我正在运行以下代码:

library(tidyverse)

adult_csv <- read.csv('./adult-csv.csv')

fields<-c('age','capital.gain','capital.loss','salaries') 

adult_csv %>%
            summarise_at(fields, funs(mean, median, max,min , sd))

不幸的是,与age字段相关的所有值都是na

我用

检查了年龄细胞的类型
str(adult_csv[1])

它是int,同时其他字段都是num 所以,我认为问题来自于类型。

如何在开放精炼中将int转换为num?

1 个答案:

答案 0 :(得分:0)

我实际上是按照你的文件播放的,它完全打开了。

数据在那里,可以很好地总结。但是,我使用以下方法将空白转换为NA:

sapply(adult_csv, function(x){is.na(x)<-which(x == '');x}) 

然后使用数字,以便使用以下方法舍入您的平均值:  adult_csv$age<-as.numeric(adult_csv$age)

问题仍然存在,因为在计算中没有省略NA(在这种情况下为空值)。 我跑的时候

mean(adult_csv$age, na.rm=TRUE)

我得到了:

[1] 38.56958

你需要明确地告诉r从你的计算中删除na值,如果你想要有你年龄的全年平均值,你可以把它保留为整数。

在总结通话中尝试此操作:

(funs(mean(., na.rm = TRUE), median(., na.rm = TRUE), sd(., na.rm = TRUE)))

我测试了它并且有效。