[英]Pivoting data in R with reshape
我敢肯定這是重復的,但是我覺得我已經接近解決方案了。 我有一個名為Data
的數據框,它具有列名和數據結構,如下所示:
Col1, Col2, Col3, Val1, Val2, Val3, Val4
U,U,A,2,3,9,4
我想將其轉換為如下形式:
Types, Col1, Col2, Col3, Nums
Val1, U, U, A, 2
Val2, U, U, A, 3
Val3, U, U, A, 9
Val4, U, U, A, 4
但是我似乎無法使reshape2
包正常工作。 我試過了:
library(reshape2)
melt <- melt(data)
d_melt <- dcast(melt, Col1+Col2+Col3 ~ Val1+Val2+Val3)
但這並不能提供我想要的正確數據形式。 同樣,如果我反轉操作數:
d_melt <- dcast(melt, Val1+Val2+Val3 ~ Col1+Col2+Col3)
這似乎也不起作用。
我靠近嗎? 我在R中的樞軸上不是很好,但是我感覺缺少一些參數(可能是不同的工具?)來顯示新的字段名稱。
單獨melt
達到以下效果:
melt(df)
# Using Col1, Col2, Col3 as id variables
# Col1 Col2 Col3 variable value
# 1 U U A Val1 2
# 2 U U A Val2 3
# 3 U U A Val3 9
# 4 U U A Val4 4
我會改用tidyr::gather
。
library(dplyr)
library(tidyr)
read.table(text = "Col1, Col2, Col3, Val1, Val2, Val3, Val4
U,U,A,2,3,9,4",
header = TRUE,
stringsAsFactors = FALSE,
sep = ",") %>%
gather(Types, Nums, starts_with("Val"))
結果:
Col1 Col2 Col3 Types Nums
1 U U A Val1 2
2 U U A Val2 3
3 U U A Val3 9
4 U U A Val4 4
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.