作者gsuper (Logistic recrashing)
看板Statistics
标题Re: [程式] [R]资料处理问题
时间Wed May 30 21:03:41 2012
※ 引述《ooorrrzzz (orz)》之铭言:
: [软体程式类别]: R
: [程式问题]: 资料处理
: [软体熟悉度]:中(3个月到1年)
: [问题叙述]:
: 想要计算一些月资料的季平均值
: 想要由「月份」衍生出「季」的栏位
: 假设原始资料为:
: int_rate month
: 1.2% 01
: 1.5% 02
: 1.8% 03
: 1.6% 04
: 1.3% 05
: 1.2% 06
: 1.4% 07
: ... ...
: 希望增加一栏「季」的栏位
: 整理成资料型态为
: int_rate month quarter
: 1.2% 01 Q1
: 1.5% 02 Q1
: 1.8% 03 Q1
: 1.6% 04 Q2
: 1.3% 05 Q2
: 1.2% 06 Q2
: 1.4% 07 Q3
: ... ... ...
: 嚐试设 Q1=c('01', '02', '03')
: 再用if 或是 for 等条件或回圈方式处理
: 不过都无法正确整理出资料
: 感觉好像很简单,不过却想不出什麽解决方案
: 想请教一下是否有什麽方法或函数可以整理这类资料
: 谢谢
x <- gsub("^ *| *$","",as.matrix(你的矩阵))
quarter <- rep(NA,dim(x)[1])
quarter[as.numeric(x[,"month"]) %in% 1:3] <- "Q1"
quarter[as.numeric(x[,"month"]) %in% 4:6] <- "Q2"
quarter[as.numeric(x[,"month"]) %in% 7:9] <- "Q3"
quarter[as.numeric(x[,"month"]) %in% 10:12] <- "Q4"
if( any(is.na(quarter)) )
{print("有不是1~12月份的怪资料,请检察资料");Sys.sleep(10000000000) }
result <- cbind(x,quarter=quarter)
--
祭颂后灵的骑士道与白主教稳守黄金乡
边境兵躁动自高自大妄入堡垒
黑主教冷静人格分裂
笼城王与双子战塔一筹莫展
掌握无限的魔女唤醒躺下的灵魂
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.113.239.247
※ 编辑: gsuper 来自: 140.113.239.247 (05/30 21:08)
1F:→ gsuper:rep(c("Q1","Q2","Q3","Q4"),each=3) 这段指令也可试试 05/30 21:11
2F:推 ooorrrzzz:太感谢了,解决我下午想了好久的问题 05/30 21:41
3F:→ ooorrrzzz:想问一下,我有嚐试用in,不过失败了,加%%有什麽效果呢 05/30 21:43
4F:→ gsuper:?match 05/30 21:48