[英]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.