我有这个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?
答案 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)))
我测试了它并且有效。