作者taichi53719 (我最讨厌人家装老)
站内Statistics
标题Re: [程式] 请教R程式
时间Tue Mar 8 15:57:21 2011
※ 引述《gsuper (统计的巴比伦塔)》之铭言:
: ※ 引述《iterate (碎形)》之铭言:
: : [软体程式类别]: R
: : 请填入软体程式类别 例如SAS、SPSS、R、EVIEWS...等
: : [程式问题]: 资料处理
: : 资料处理、回归、叙述统计、logistic、probit...等
: : [软体熟悉度]:
: : 请把以下不需要的部份删除
: : 新手(不到1个月)
: : [问题叙述]:
: : 请详尽叙述遭遇到的问题,可能的话,分点叙述你要处理的流程
: : 假设有一组资料:
: : [,1] [,2] [,3]
: : [1,] 8 12 3
: : [2,] 4 5 6
: : [3,] 11 14 10
: : [4,] 9 15 2
: : [5,] 7 1 13
: : 想找出第一行大於7(8、11、9),且在第三行中是最小的(3、10、2)资料
: : 是全部资料的第几笔资料(4)
: : 请问这语法该怎麽表示?
: : 目前只知道 which.min(data[,3])
: : 可以找出第三行中最小值出现在第4个位置
: : 但是如果要加上新的条件(第一行要大於7)
: : 则语法需要怎麽表示,再请大家帮忙,谢谢
: : [程式范例]:
: : 虽然张贴程式很可怕,但基本上有些程式还是要张贴才能解决
: : -----------------------------------------------------------------------------
: data2 <- cbind( data , rep(-1,dim(data)[1]) )
: index <- data2[,1]>7
: tmp <- data2[index,]
: tmp[,4] <- tmp[,3] %in% min(tmp[,3])
: data2[index,] <- tmp
: result <- which(tmp[,4])
x=matrix(c(8,12, 3, 4, 5, 6,11,14,10, 9,15, 2, 7, 1,13),byrow=T,nrow=5)
which(x[,1]>7 & x[,3]==min(x[,3]))
基本上which是解决这种问题很方便的指令
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.119.80.110
1F:→ Wush978:这样子, 如果x[which.min(x[,3]),1] < 7的话 03/08 16:11
2F:→ Wush978:答案可能不是原po想要的 03/08 16:11