xileng
大家好,
问个简单的for语句.
Flux<-c(3,3.1,3.5,4,4,4.3,4.5,4.7,4.8,4.7,0.7,0.6,0.6,0.7,0.6,0.7,0.6,0.3)
T<-c(25,26,23,24,25,26,22,21,20,28,27,23,22,21,23,22,20,19)
y<-c(1:14)
for(i in 1:14){y<-sd(Flux[i:i+4])}
y
[1] NA NA NA NA NA NA NA NA NA NA NA NA NA NA
为什么输出都是NA
> y[1]<-sd(Flux[1:5])
> y[1]
[1] 0.4764452
这样就是对的,但是我真正需要处理的数据非常多,应该怎么实现呢?谢谢大家啦
xileng
复制错了一段
应该是这样的
Flux<-c(3,3.1,3.5,4,4,4.3,4.5,4.7,4.8,4.7,0.7,0.6,0.6,0.7,0.6,0.7,0.6,0.3)
T<-c(25,26,23,24,25,26,22,21,20,28,27,23,22,21,23,22,20,19)
y<-c(1:14)
for(i in 1:14){y<-sd(Flux[i:i+4])}
y
[1] NA NA NA NA NA NA NA NA NA NA NA NA NA NA
xileng
for(i in 1:14){y<-sd(Flux[i:i+4])}
xileng
Flux后面有个中括号 i:i+4 不知道贴子里为什么显示不出
yewuti
哈哈哈,这个问题其实很简单,你没有搞清楚R里面的运算顺序问题。i:i+4得到的结果是i+4,而不是一个向量,因此应该改成i:(i+4).另外,y<-sd(Flux[i:(i+4)]).就可以了。
yewuti
好吧,果真中括号是显示不出来的。y的后面应该加个中括号,里面是i
xileng
[未知用户]
谢谢啦