楼主: reben_1987
1610 3

[问答] r程序求助 [推广有奖]

  • 0关注
  • 0粉丝

博士生

74%

还不是VIP/贵宾

-

威望
0
论坛币
169 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
381 点
帖子
41
精华
0
在线时间
645 小时
注册时间
2010-4-4
最后登录
2023-8-16

楼主
reben_1987 发表于 2011-8-9 21:35:12 |AI写论文
50论坛币
程序是根据x的值选择对应的行数据,目的就是对于x值,选择两个零之间数值最大的所对应的行
  n year month day  x
1 1    1     2       1    0
2 2    1     3       3    2
3 3    2     2       2    5
4 4    2     1       4     1
5 5    4     4       5    0
6 6    4     6       6    2
7 7    4     4       7    1
8 8    6     3       2    0
上面的数据经选择过后应该是选择第三行和第六行,然后再将选择的行放入新的数据框。
下边是编的程序,问题主要出在最后t<-NULL上,不知道如何修改,还请高手们指点下,谢谢!
year=c(1,1,2,2,4,4,4,6)
month=c(2,3,2,1,4,6,4,3)
day=c(1,3,2,4,5,6,7,2)
x=c(0,2,5,1,0,2,1,0)
n<-1:8
p=data.frame(n,year,month,day,x)
t<-NULL
m<-NULL
for(k in 1:7)
{if(subset(p$x,p$n==k)==0&&subset(p$x,p$n==k+1)!=0)
    t<-rbind(t,subset(p,p$n==k+1))
else if(subset(p$x,p$n==k)!=0&&subset(p$x,p$n==k+1)!=0)
    t<-rbind(t,subset(p,p$n==k+1))
else if(subset(p$x,p$n==k)!=0&&subset(p$x,p$n==k+1)==0)  
    m<-rbind(m,subset(t,x==max(t$x)))
    t<-NULL
else break}

最佳答案

epoh 查看完整内容

贴出"显现"有误,更正如下: code.txt
关键词:R程序 month mont year Nth 最大的 程序

沙发
epoh 发表于 2011-8-9 21:35:13

贴出"显现"有误,更正如下:

  code.txt

   code.txt (546 Bytes)


藤椅
epoh 发表于 2011-8-11 10:11:07
year=c(1,1,2,2,4,4,4,6)
month=c(2,3,2,1,4,6,4,3)
day=c(1,3,2,4,5,6,7,2)
x=c(0,2,5,1,0,2,1,0)
n<-1:8
p=data.frame(n,year,month,day,x)
p=as.matrix(p)
n=dim(p)[1]
m=dim(p)[2]

zero=which(x==0, arr.ind=TRUE)
n1=length(zero)
index=NA*seq(1:(n1-1))
tmat=matrix(NA,(n1-1),m)
for(i in 1:(n1-1)){
index=zero+which(x[(zero+1):(zero[i+1]-1)]==max(x[(zero+1):(zero[i+1]-1)]), arr.ind=TRUE)
tmat[i,]=p[index,]
}
index
#[1] 3 6
tmat
     [,1] [,2] [,3] [,4] [,5]
[1,]    3    2    2    2    5
[2,]    6    4    6    6    2

板凳
reben_1987 发表于 2011-8-11 14:38:38
epoh 发表于 2011-8-11 10:11
year=c(1,1,2,2,4,4,4,6)
month=c(2,3,2,1,4,6,4,3)
day=c(1,3,2,4,5,6,7,2)
谢谢,程序很好,学习了
我的程序中的问题也找出了
{m<-rbind(m,subset(t,x==max(t$x)))
    t<-NULL}
else t<-t}
再次向您表示感谢

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-30 22:28