z**********i 发帖数: 88 | 1 I want to get a very straight forward result. The mean of (v1-v2). V1 and v2
both have missing data. Because there are a lot of variables, I wrote a
macro, but the result is NA.
Could anybody help me please?
for (k in 1:13){
Normals_matrix[k,1]=mean(Normals[,5*k-1]-Normals[,5*k-2],na.rm=TRUE)
Normals_matrix[k,2]=sd (Normals[,5*k-1]-Normals[,5*k-2],na.rm=TRUE)
Normals_matrix[k,3]=mean(Normals[,5*k]- Normals[,5*k-2],na.rm=TRUE)
Normals_matrix[k,4]=sd (Normals[,5*k]- Normals[,5*k-2],na.rm=TRUE)
Normals_matrix[k,5]=mean(Normals[,5*k+1]-Normals[,5*k-2],na.rm=TRUE)
Normals_matrix[k,6]=sd (Normals[,5*k+1]-Normals[,5*k-2],na.rm=TRUE)
Normals_matrix[k,7]=mean(Normals[,5*k+2]-Normals[,5*k-2],na.rm=TRUE)
Normals_matrix[k,8]=sd (Normals[,5*k+2]-Normals[,5*k-2],na.rm=TRUE)
}
THanks | z****g 发帖数: 1978 | 2 mean(v1-v2) ....what are you try to do | z**********i 发帖数: 88 | 3 就是想得出the mean of (v1-v2).
在SAS里,先要得出diff=v1-v2, then proc means;var diff.在R比较方便,因为可以
做矩阵,我的code为什么不行呢?
谢谢 | s********0 发帖数: 2625 | 4 你自己都说v1或者v2里面有missing data,那mean(v1-v2)只能是NA。 | a****r 发帖数: 1486 | 5 他用了na.rm了
我觉得可能是k值造成over boundary了吧
【在 s********0 的大作中提到】 : 你自己都说v1或者v2里面有missing data,那mean(v1-v2)只能是NA。
| B******5 发帖数: 4676 | 6 missing value太多了?都被remove了?不懂。。。 | y**********u 发帖数: 68 | 7 Then the result should be NaN, not NA.
【在 B******5 的大作中提到】 : missing value太多了?都被remove了?不懂。。。
| y**********u 发帖数: 68 | 8 It should give the error msg like "subscript out of bounds"
【在 a****r 的大作中提到】 : 他用了na.rm了 : 我觉得可能是k值造成over boundary了吧
| z**********i 发帖数: 88 | 9 谢谢各位的答复。我是了一小data。
> y
[1] 1 2 3 NA
> x
[1] 21 32 3 NA
> mean=mean(y-x,na.rm=TRUE)
> mean
[1] -16.66667
这样就可以。我的数据missing 也不多(741 record,2个missing)。wo我的data 叫
Normal,R error 是
> meandiff2=mean((Normals[,4]-Normals[,3]),na.rm=TRUE)
> meandiff2
[1] NaN
> Normals[,4]
integer(0)
为什么出现 integer(0) 呢?
谢谢 | z**********i 发帖数: 88 | | | | z**********i 发帖数: 88 | 11 我觉得还是code问题
举个例子
y=1,2,3,4,na
x=3,4,5,6,na
diff=(y-x)
mean=mean(diff,na.rm=TRUE)就可以work
但是:
mean=(mean(y-x),na.rm=TRUE)就不work
请帮忙!!!谢谢! | z**********i 发帖数: 88 | 12 还有,为什么这个variable没有missing,下面的code有错呢。
> m=Normals[,1]
> m
integer(0)
这个integer(0)是什么意思呢?
谢谢 | f******d 发帖数: 537 | 13 Look at your two commands very carefully. Are they the same?
diff=(y-x)
mean=mean(diff,na.rm=TRUE) vs.
mean=(mean(y-x),na.rm=TRUE)
【在 z**********i 的大作中提到】 : 我觉得还是code问题 : 举个例子 : y=1,2,3,4,na : x=3,4,5,6,na : diff=(y-x) : mean=mean(diff,na.rm=TRUE)就可以work : 但是: : mean=(mean(y-x),na.rm=TRUE)就不work : 请帮忙!!!谢谢!
| B******5 发帖数: 4676 | 14 第二个明显不会work啊。。。
【在 z**********i 的大作中提到】 : 我觉得还是code问题 : 举个例子 : y=1,2,3,4,na : x=3,4,5,6,na : diff=(y-x) : mean=mean(diff,na.rm=TRUE)就可以work : 但是: : mean=(mean(y-x),na.rm=TRUE)就不work : 请帮忙!!!谢谢!
| B******5 发帖数: 4676 | 15 嗯,有道理
【在 y**********u 的大作中提到】 : Then the result should be NaN, not NA.
| a****r 发帖数: 1486 | 16 R不会给这种提示
试试下面code
a <- NULL
b <- NULL
z <- a[,1] - b[,2]
z
【在 y**********u 的大作中提到】 : It should give the error msg like "subscript out of bounds"
| l*****s 发帖数: 774 | 17 你的data叫做"Normal",为什么你后面的code都是用的"Normals"? 多了一个“s”字母。
叫
【在 z**********i 的大作中提到】 : 谢谢各位的答复。我是了一小data。 : > y : [1] 1 2 3 NA : > x : [1] 21 32 3 NA : > mean=mean(y-x,na.rm=TRUE) : > mean : [1] -16.66667 : 这样就可以。我的数据missing 也不多(741 record,2个missing)。wo我的data 叫 : Normal,R error 是
| c*******d 发帖数: 1 | |
|