Re: [問題] 幾個資料預處理問題
※ 引述《sinclairJ (Jun)》之銘言:
: 不好意思,又要來請教各位先進了
: 資料檔大概格式如下(均是類別型資料)
: (實際資料約為200列乘500000行)
: ----------------------------
: 序 Y X1 X2 X3
: 1 1 0 1 2
: 2 1 0 0 0
: 3 2 2 1 1
: 4 1 1 1 2
: 5 2 0 2 2
: 6 2 1 1 2
: 7 2 1 0 1
: 8 1 2 1 1
: 9 1 1 2 0
: 10 2 0 0 2
: ......
: ......
: .....
: -----------------------------
: 以下有幾個互相獨立的資料處理動作要請教各位:
: (1)如表格所示,Y有兩種類別,X有三種類別,我想做的處理是比較Y的兩種類別,其他
: 們的X變數是否為同樣類別
: 舉例:Y X1 X2 X3
: 1 0 1 2
: 1 0 2 2
: 2 0 0 1
: 2 0 1 1
: 然後因為X1都一樣,所以我要把X1刪除,請問這個預處理該如何於R上實現?
dat[,sapply(dat, function(x){ length(table(x))}) > 1]
: (2)接下來我要對每個X變數做類似這樣的處理
: 舉例:X1
: 0
: 1
: 2
: 1
: 2
: 2
: 1
: 2
: 1
: 1
: 先找出最小的類別,其所佔的比例
: 如X1最小的類別是0,比例為1/10,1/10就是我想得到的,只是迴圈不太明白該怎麼寫
dat = data.frame(Y = c(1,1,2,1,2,2,2,1,1,2),
X1= c(0,0,2,1,0,1,1,2,1,0),
X2= c(1,0,1,1,2,1,0,1,2,0),
X3= c(2,0,1,2,2,2,1,1,0,2))
lapply(dat, function(x){
tmp = table(x)/length(x)
output = min(tmp)
names(output) = names(tmp)[which.min(tmp)]
output
})
: (3)X變數做C取2組合方式(兩兩相互)對Y做邏輯斯迴歸(這邊的X可轉成數值型資料來處
: 理)
: 舉例
: Y X1 X2 X3
: 1 2 1 0
: 2 1 0 1
: 3 2 0 0
: 如果資料是上述這樣
: 我就要建立三條迴歸
: Y~X1+X2
: Y~X2+X3
: Y~X1+X3
: 之後把顯著(p<0.05)的X變數挑出來
: 希望各位先進能指導指導小弟
: 若問題描述還不夠清楚
: 我會再補充,先跟版上各位先進說聲謝謝了
lapply(apply(combn(3, 2), 2, function(x){
paste("Y-1~", paste("X", 1:2, sep="", collapse="+"))
}), function(f) glm(as.formula(f), data = dat, family=binomial))
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.166.185.71
※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1429694718.A.C3B.html
→
04/22 18:06, , 1F
04/22 18:06, 1F
→
04/22 18:31, , 2F
04/22 18:31, 2F
→
04/22 18:47, , 3F
04/22 18:47, 3F
→
04/22 18:47, , 4F
04/22 18:47, 4F
→
04/22 19:35, , 5F
04/22 19:35, 5F
→
04/23 10:33, , 6F
04/23 10:33, 6F
※ 編輯: celestialgod (36.225.239.69), 04/23/2015 13:57:07
討論串 (同標題文章)
完整討論串 (本文為第 2 之 3 篇):
0
1
R_Language 近期熱門文章
PTT數位生活區 即時熱門文章