用 melt 重塑数据
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 函数。任何帮助表示赞赏!
我觉得 tidyr 更容易
library(dplyr)
library(tidyr)
data %>%
gather(Year, Acres, -State) %>%
mutate(Hectares = Acres * 2.47)
我们可以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][]
嗨,这是我的示例数据。数据代表一个州的收获面积(英亩)。
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 函数。任何帮助表示赞赏!
我觉得 tidyr 更容易
library(dplyr)
library(tidyr)
data %>%
gather(Year, Acres, -State) %>%
mutate(Hectares = Acres * 2.47)
我们可以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][]