今天我试着完成最后一次R-study练习,但是我失败了。我不允许你展示我学术界的准确说明,但你可以帮我解决我在采购后得到的警告。他们的意思是什么?什么不合适? 我知道,这个问题很模糊,但这是唯一的问题。 我相信它的“Aufgabe 3”和“Aufgabe 4”
这是我的意见:
x <- read.csv ("http://hci.stanford.edu/jheer/workshop/data/worldbank/worldbank.csv")
y <- (colnames (x) <- (c ("Country", "Year", "co2", "power","energy", "fertility", "gni", "internet", "life.expectancy","military", "population", "hiv.prevalence")))
y
####Aufgabe 1####
f1 <- min(x$fertility, na.rm=TRUE)
f1
####Aufgabe 2####
f2 <- max (subset(x, Country=="Australia" | Country=="Belarus" | Country=="Germany", select=fertility), na.rm=TRUE)
f2
####Aufgabe 3####
q1 <- quantile (subset(x, Year==2005, select=military), probs=c(.25), na.rm=TRUE)
q1
####Aufgabe 4####
q2 <- quantile (subset(x, Year==2001, select=population), probs=c(.05), na.rm=TRUE)
q2
####Aufgabe 4####
n <- length(which (is.na (subset (x, Year==2000, select=military))))
n
####Aufgabe 5####
library(psych)
mil<- skew (x$military)
coun<- skew(x$Country)
Ye<- skew(x$Year)
co<- skew(x$co2)
po<- skew(x$power)
en<- skew(x$energy)
fer<- skew(x$fertility)
gni<- skew(x$gni)
inertnet<- skew(x$internet)
life<- skew(x$life.expectancy)
pop<- skew(x$population)
hiv<- skew(x$hiv.prevalence)
mil
coun
Ye
co
po
en
fer
gni
inertnet
life
pop
hiv
ku1<- "co2"
ku1
......以及我在采购后得到的这些警告:
1. In var(as.vector(x), na.rm = na.rm : Na generated through conversion
2. n mean.default(x) : argument is not numeric or logical: returning NA
3. 3: In Ops.factor(x, mx) : - not meaningful for factors
4. In var(as.vector(x), na.rm =na.rm) : Na generated through conversion
答案 0 :(得分:4)
as.vector(x)
操作导致x
的一个或多个元素转换为NA
,因为未定义这些组件的转化。mean.default
时,x
既不是数字也不是逻辑,因此函数无法对数据执行任何操作x
或mx
或两者都是因素,-
(和其他数学运算符)未定义因子对象。所有都指向输入数据的问题,通常已经创建了一个因子。
警告来自这条线:
> coun <- skew(x$Country)
Warning messages:
1: In var(as.vector(x), na.rm = na.rm) : NAs introduced by coercion
2: In mean.default(x) : argument is not numeric or logical: returning NA
3: In Ops.factor(x, mx) : - not meaningful for factors
4: In var(as.vector(x), na.rm = na.rm) : NAs introduced by coercion
这是因为x$Country
是一个因素:
> str(x)
'data.frame': 1362 obs. of 12 variables:
$ Country : Factor w/ 227 levels "","Afghanistan",..: 19 19 19 19 19 19 166 166 166 166 ...
....
即使你把它变成了一个角色,你也可以计算出这个变量的偏度。只需评论这一行。