0
我從ddply
函數中發現了一個有趣的功能。看來,你不能在彙總輸出數據幀使用相同的變量名不是在輸入數據幀:plyr彙總輸出和輸入數據幀中的變量名稱
set.seed(1)
ex <- data.frame(Type = c(rep("a", 10), rep("b", 10)), time = rnorm(20, 6,3))
ddply(ex, .(Type), summarize, time = mean(time), n = length(time))
Type time n
1 a 6.396608 1
2 b 6.746535 1
length
出來爲1。然而,如果你改變變量名(時間)到別的東西:
ddply(ex, .(Type), summarize, tim = mean(time), n = length(time))
Type tim n
1 a 6.396608 10
2 b 6.746535 10
它也幫助,如果我重新排列列的輸出:
ddply(ex, .(Type), summarize, n = length(time), time = mean(time))
Type n time
1 a 10 6.396608
2 b 10 6.746535
或重命名變量輸入:
set.seed(1)
ex <- data.frame(Type = c(rep("a", 10), rep("b", 10)), tim = rnorm(20, 6,3))
ddply(ex, .(Type), summarize, time = mean(tim), n = length(tim))
Type time n
1 a 6.396608 10
2 b 6.746535 10
但是:
ddply(ex, .(Type), summarize, tim = mean(tim), n = length(tim))
Type tim n
1 a 6.396608 1
2 b 6.746535 1
我的工作:
R version 3.0.0 (2013-04-03)
Platform: x86_64-w64-mingw32/x64 (64-bit)
plyr_1.8
這是plyr
什麼已知特徵[R 3.0.0後發生了什麼?
感謝您的回答。我認爲'ddply'會從輸入數據幀中獲取矢量。也許我錯了?如果函數會考慮輸出數據幀,那麼您的解釋將會起作用。 – Mikko 2013-04-26 14:08:22
@我認爲垂涎的解釋是正確的,但感謝您指出這一點,我一直認爲它會使用輸入數據幀。 – mitchus 2013-07-31 08:28:19