还在学习R和我看过Combine Multiple Columns Into Tidy Data和Gather multiple sets of columns,但不能完全回答我的问题。
我有这个数据集,我需要将宽数据帧收集到一个长数据帧中。
year Bn_elec Bn_water Hn_elec Hn_water SF_elec SF_water
2000 148.58 150.8 111.73 159.11 170.74 165.74
2001 189.41 170.34 132.86 195.5 205.14 199.14
2002 234.68 181.89 164.54 223.02 223.33 123.33
2003 272.14 186.43 219.74 305.88 311.17 411.17
2004 253.33 158.29 234.13 291.35 293.01 213
我想最终得到这个:
year City electricity water
2000 Boston 148.58 150.8
2001 Boston 189.41 170.34
2002 Boston 234.68 181.89
2003 Boston 272.14 186.43
2004 Boston 253.33 158.29
2000 Houston 111.73 159.11
2001 Houston 132.86 195.5
2002 Houston 164.54 223.02
2003 Houston 219.74 305.88
2004 Houston 234.13 291.35
2000 San Fransicso 170.74 165.74
2001 San Fransicso 205.14 199.14
2002 San Fransicso 223.33 123.33
2003 San Fransicso 311.17 411.17
2004 San Fransicso 293.01 213.01
复制数据集的代码:
usage_data <- data.frame(stringsAsFactors=FALSE,
year = c("2000", "2001", "2002", "2003", "2004"),
Bn_elec = c(148.58, 189.41, 234.68, 272.14, 253.33),
Bn_water = c(150.8, 170.34, 181.89, 186.43, 158.29),
Hn_elec = c(111.73, 132.86, 164.54, 219.74, 234.13),
Hn_water = c(159.11, 195.5, 223.02, 305.88, 291.35),
SF_elec = c(170.74, 205.14, 223.33, 311.17, 293.01),
SF_water = c(165.74, 199.14, 123.33, 411.17, 213.01))