之前實習的時候偶然間被詢問了乙個資料結構變形的問題,但是是在excel裡,所以不太會,最近學r,發現r解決起來還挺方便,整理了一下放在這裡,以便日後需要再來查閱。
要如何把它變成這種結構:
a1b1
c1d1
a對應sum(gmv)
對應sum(gmv)
對應sum(gmv)
對應sum(gmv)
b對應sum(gmv)
對應sum(gmv)
對應sum(gmv)
對應sum(gmv)
c對應sum(gmv)
對應sum(gmv)
對應sum(gmv)
對應sum(gmv)
d對應sum(gmv)
對應sum(gmv)
對應sum(gmv)
對應sum(gmv)
region
gmv
type
dat
得到上述資料集。
write.table(a, file = 'c:/users/rapha/desktop/reading/expdat.csv', sep = ',')
結果:
方法的優點是方便,缺點是只能處理這樣三個欄位的資料集。
install.packages('tidyr')
library(tidyr)
安裝一下。
關於spread用法:
spread(data, key, value, fill = na, convert = false, drop = true)
data:為需要轉換的表
key:需要將變數值拓展為字段的變數
value:需要分散的值(用於填充)
fill:對於缺失值,可將fill的值賦值給被轉型後的缺失值
(長轉寬-spread)
但是!在使用spread之前,首先要對value值group by一下,不然不能使用這個函式…。
比如在原先的資料中:
第1行和第9行的(region,type)是一樣的,應當加總起來。
所以首先要進行一下group by 的操作。這裡我是直接使用了一下sqldf的包進行了操作。
install.packages('sqldf')
library(sqldf)
new_dat
spread(new_dat,type,gmv)
結果:
方法的優點是比較規範,在有多個欄位的時候也可以很好的處理。缺點是步驟多。
R語言 資料變形melt 函式
資料變形melt 函式 library reshape2 library dplyr data melt date ggplot melt data,id.vars,measure.vars,variable.name variable na.rm false,value.name value fa...
R語言 資料處理 R語言資料變形melt用法
1 需要安裝的包 install.packages reshape2 install.packages knitr 2 載入包 rm list ls gc library reshape2 library knitr 3 建立資料集 data data4 變形之前資料展示 kable data,fo...
r語言electricity資料集 R語言 資料集
第二章 建立資料集 1.r語言的資料型別 數值型 字元型 邏輯型 複數型 虛數 和原生型 位元組 2.資料結構 a.向量 儲存數值型 字元型和邏輯型資料的一維陣列 a c 1,2,3,4,5 建立 組合功能的函式c a 1 1 2 3 4 5 a c 1,4 訪問 方括號 向量中指定的元素 1 1 ...