作者gsuper (统计的巴比伦塔)
看板Statistics
标题Re: [程式] R矩阵计算问题
时间Sun Jul 11 14:38:20 2010
※ 引述《Ares0628 (SHOW HAND)》之铭言:
: [软体程式类别]:
: R
: [程式问题]:
: 资料处理
: [软体熟悉度]:
: 新手(不到1个月)
: [问题叙述]:
: 一. X=c('abc23','abc2254','abk2225','abc1414','abc1414')
: 要如何让他照字母数字排序成 abc23 abc1414 abc1414 abc2225 abk2254
: 用sort排列只会一个一个字元比较
: 二.我想利用A矩阵 另外生成矩阵B
: 比较第一行资料名字若相同 则合并成一列计算 (这边用sum为例子)
: A=data.frame(matrix(0,5,4))
: A[,1]=c('abc23','abc23','abc25','abc25','abc28')
: A[,2]=c(20,60,40,90,20)
: A[,3]=c(3,5,1,9,2)
: A[,4]=c(600,800,100,500,200)
: A
: X1 X2 X3 X4
: 1 abc23 20 3 600
: 2 abc23 60 5 800
: 3 abc25 40 1 100
: 4 abc25 90 9 500
: 5 abc28 20 2 200
: B
: X1 X2 X3 X4
: 1 abc23 80 8 1400
: 2 abc25 130 10 600
: 3 abc28 20 2 200
A <- A[order(A[,1]) , ]
B <- cbind
( unique(A[,1]) , tapply(A[,2],A[,1],sum) ,
tapply(A[,3],A[,1],sum) , tapply(A[,4],A[,1],sum)
)
为了解这个问题 , 我之前花了一个礼拜 (弱)
(P.S. 矩阵里面不能有 Missing value 或 NA)
另一种写法是用 tapply 找到 index
再用 index 叫出特定 matrix
再用 colSums()
不过我懒的写了....
: 三.初学R遇到问题都不晓得该用那些函数 有哪些函数可以用 即使HELP也不知道该查什麽
: 请问一下遇到问题的时候 要怎样知道我该去找哪个函数来用??或是有什麽技巧吗
如果是要找特定统计功能
google " XXXX method
with R"
如果是跟 Coding 有关的
我也很苦恼找不到好的书....
--
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.113.177.3
※ 编辑: gsuper 来自: 140.113.177.3 (07/11 14:38)
※ 编辑: gsuper 来自: 140.113.177.3 (07/11 14:39)
※ 编辑: gsuper 来自: 140.113.177.3 (07/11 14:40)
※ 编辑: gsuper 来自: 140.113.177.3 (07/11 14:40)
※ 编辑: gsuper 来自: 140.113.177.3 (07/11 14:42)
※ 编辑: gsuper 来自: 140.113.239.247 (07/11 17:09)
※ 编辑: gsuper 来自: 140.113.239.247 (07/11 17:10)
1F:→ Ares0628:谢谢 版上高手真多@@ 07/11 17:54
2F:→ gsuper:看到 113 就想回一下 , and 我是低手 07/11 18:01
※ 编辑: gsuper 来自: 140.113.177.3 (07/11 23:44)