作者whatsme (明天的明天)
站內Statistics
標題Re: [程式] R的資料轉換
時間Thu Mar 24 09:15:15 2011
資料的column name可能要換
R無法接受數字開頭的column name
硬讀進去則column name會變成
Tree X1924 X1934 X1935 X1936 X2000
程式可以修改成下面
data <- reshape(temp,idvar='Tree',times=c(1924,1934,1935,1936,2000)
,timevar="year"
,varying=list(c("X1924","X1934","X1935","X1936","X2000"))
,v.names="dbh",direction="long")
我剛試了一下轉出來的結果:
> data
Tree year dbh
1.1924 1 1924 12
2.1924 2 1924 11
3.1924 3 1924 10
4.1924 4 1924 10
1.1934 1 1934 20
2.1934 2 1934 18
3.1934 3 1934 14
4.1934 4 1934 16
1.1935 1 1935 21
2.1935 2 1935 20
3.1935 3 1935 15
4.1935 4 1935 25
1.1936 1 1936 22
2.1936 2 1936 23
3.1936 3 1936 NA
4.1936 4 1936 23
1.2000 1 2000 40
2.2000 2 2000 50
3.2000 3 2000 NA
4.2000 4 2000 NA
他會有那個Error應該是你給timevar卻又沒給times的原因
不過timevar裡面放的是新轉出來資料放時間變項的column name
※ 引述《wertymin24 (werty)》之銘言:
: ------------------------------------------------------------------------
: [軟體程式類別]:
: R
: [程式問題]:
: 資料處理
: [軟體熟悉度]:
: 中(3個月到1年)
: [問題敘述]:
: 我有一筆資料如下圖
: Tree 1924 1934 1935 1936 ~ 2000
: 1 12 20 21 22 40
: 2 11 18 20 23 50
: 3 10 14 15 =>1935後是空白
: 4 10 16 25 23 =>1936後是空白
: 5
: ~
: ~
: 1000 9 18 23 24 46
: 想要轉換成
: Tree year dbh
: 1 1924 12
: 1 1934 20
: 1 1935 21
: 1 1936 22
: ~ ~ ~
: 1 2000 40
: 2
: 2
: 2 ~ ~
: ~
: ~
: 1000 2000 46
: 我目前是用reshape的方式
: 但是他會跑出一串錯誤如下
: "Error in is.null(arg) : 'arg' is missing"
: 我GOOGLE沒有找到類似的問題,是因為我有空白值嗎?
: 但我將空白值填入0後一樣,而且我看reshape的example裡空白值會自動填入NA才對
: [程式範例]:
: data <- reshape(temp,idvar='Tree',timevar='dbh',
: varying=list(c('1924',''1934','1935','1936','2000',direction='long')))
: -----------------------------------------------------------------------------
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 203.73.59.4
推 wertymin24:謝謝,但是我照一樣的方法做,卻還是跑出一樣的error耶 03/24 11:12
推 wertymin24:喔喔~我笨了...括號的問題沒處理好...謝謝 03/24 11:16