作者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