我甚至不知道如何標題的問題正確![R重新排列數據幀:一些行的列
假設我有一個數據幀d:
當前數據幀:
d <- data.frame(sample = LETTERS[1:2], cat = letters[11:20], count = c(1:10))
sample cat count
1 A k 1
2 B l 2
3 A m 3
4 B n 4
5 A o 5
6 B p 6
7 A q 7
8 B r 8
9 A s 9
10 B t 10
,我想重新安排你的事情,使得每隻貓值變爲它自己的專欄,樣品仍然是一列(或成爲行名稱),計數將是價值在新的貓列,0,其中一個樣本不具有貓的計數。像這樣:
期望中的數據框佈局:
sample k l m n o p q r s t
1 A 1 0 3 0 5 0 7 0 9 0
2 B 0 2 0 4 0 6 0 8 0 10
什麼是去了解它的最好方法?
這是據我已經得到:
for (i in unique(d$sample)) {
s <- d[d$sample==i,]
st <- as.data.frame(t(s[,3]))
colnames(st) <- s$cat
rownames(st) <- i
}
即通過在原始數據幀的樣本循環和調換爲每個樣本子集。因此,在這種情況下,我得到
k m o q s
A 1 3 5 7 9
和
l n p r t
B 2 4 6 8 10
這是我卡住。我用merge(),bind(),apply()等方法嘗試了一堆東西,但我似乎無法擊中正確的東西。另外,我不禁想知道上面的這個循環是否是必要的步驟 - 也許是用unstack()的東西?
不用說,我是新至R ...如果有人能幫助我,這將不勝感激!
PS原因,我試圖重新安排我的數據幀是在製作的價值更容易繪製的希望(即我要顯示在表格式的陰謀實際DF)。
謝謝!
你想要做的是從「長」到「寬」去操作。這個問題之前已經被問及過很多次了。 – nograpes
我的歉意。我通過這裏和谷歌搜索無盡的,我只是找不到任何我需要的東西(不知道如何調用我所需要的不是幫助)。我會尋找「長」/「寬」... – crs