作者gsuper (统计的巴比伦塔)
看板Statistics
标题Re: [程式] 请教R程式
时间Tue Mar 8 15:28:25 2011
※ 引述《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(0,dim(data)[1]) )
index <- data2[,1]>7
tmp <- data2[index,]
tmp[,4] <- tmp[,3] %in% min(tmp[,3])
data2[index,] <- tmp
result <- which(as.logical(data2[,4]))
---------------------------------------------------------
这样就可以了
刚刚赶着去上课来不及测....
and
which.min() 这个函式有 bug , 没事不要乱用
e.g.
你可以试一下下面这行的结果是甚麽
which.min(c(1,2,1))
--
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.113.239.247
※ 编辑: gsuper 来自: 140.113.239.247 (03/08 17:33)
※ 编辑: gsuper 来自: 140.113.239.247 (03/08 17:45)
1F:推 iterate:非常谢谢各位的帮忙,解决关键的问题,程式已经可以执行了 03/09 12:58