R語言 資料變形問題

2021-08-28 22:21:28 字數 1521 閱讀 1037

之前實習的時候偶然間被詢問了乙個資料結構變形的問題,但是是在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 ...