日常的數據預處理中,不可避免的會遇到數據的各種變形、轉換,R語言中的tidyr包函數解決了數據變形上的問題,變量、列的轉換。
1、寬數據變長數據
gather(data, key = "key", value = "value", ..., na.rm = FALSE,convert = FALSE, factor_key = FALSE)
參數說明:data數據;
key將原數據所有列賦值給一個新變量,這個新變量就是這裏的key,所以當給此參數命名是要注意其含義;
value將原數據所有值賦值給一個新變量,這個新變量就是這裏的value,所以當給此參數命名是要注意其含義;
...這個省略號的地方了要注意了,它是選擇你需要轉換的那些列的,若你省略此處,它便會將所有列轉換,另外排除列在列名的前面加 - 即可;
na.rm=FALSE要不要刪除缺失值;
convert=FALSE是否需要進行類型轉換;
factor_key=FALSE是否存儲爲字符向量,否則存儲爲因子,按照原始順序排列。
2、長數據變寬數據
spread(data, key, value, fill = NA, convert = FALSE, drop = TRUE,sep = NULL)
參數說明:data數據;
key將變量值轉換爲字段變量;
value那些你需要分離的值;
fill可以將fill值賦值給轉換後的缺失值;
3、多列數據合併
unite(data, col, ..., sep = "_", remove = TRUE)
參數說明:data數據;
col構成新列的名稱;
...選擇你需要組合的列;
sep值之間的分隔符,默認情況爲"_";
remove是否刪除被組合的列。
4、列數據拆分
separate(data, col, into, sep = "[^[:alnum:]]+", remove = TRUE,convert = FALSE,
extra = "warn", fill = "warn", ...)
參數說明:data數據;
col需要拆分的列;
into新生成的列名,格式別寫錯了;
sep被拆分列的分隔符,這個千萬錯不得;
remove是否刪除被拆分列,這個就視情況而定了。
現在的文章寫的越來越接地氣、基礎了,下次寫個稍微深一點的,分享知識分享快樂!