簡體   English   中英

重塑數據

[英]Reshaping data with melt

嗨,這是我的示例數據。 數據表示以州為單位的收獲面積。

State         1974   1978    1982    1987
Alabama        0      0        6      149    
Alaska         3      4        39     140
Arizona        700    200     3000   11000
Arkansas       0      10       20      30


State          Year       Acres      Hectares  
Alabama        1974         0          0
Alabama        1978         0          0
Alabama        1982         6          2.42
Alabama        1987         149        60.30

我正在嘗試重塑形狀,以便它記錄每個觀察值,並將公頃數也作為一列包括在內,四舍五入到小數點后兩位(1公頃= 2.47英畝)

colnames(x) <-  c('state',1974,1978,1982,1987)
library(reshape2)
m <-  melt(broccoli,id='state')
colnames(m) <-  c('state','year','acres')

這是我運行的R代碼,但是使用melt函數沒有任何運氣。 任何幫助表示贊賞!

我們可以進行transform以創建“ Hectares

transform(m, Hectares = Acres/2.47)

如果我們使用data.table

 library(data.table)
 melt(setDT(broccoli), id.var='State', variable.name='Year',
        value.name='Acres')[, Hectares := Acres/2.47][]

我覺得提迪爾更容易

library(dplyr)
library(tidyr)

data %>%
  gather(Year, Acres, -State) %>%
  mutate(Hectares = Acres * 2.47)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM