作者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
1F:推 wertymin24:谢谢,但是我照一样的方法做,却还是跑出一样的error耶 03/24 11:12
2F:推 wertymin24:喔喔~我笨了...括号的问题没处理好...谢谢 03/24 11:16