我有一個數據集data.frame(x=rnorm(100),group=c(rep('a',40),rep('b',60)))
,我想用dplyr分析每個組。例如,我想使用fft
。我怎樣才能在每個返回一個序列的組上運行一個函數,而不僅僅是值。如果這只是我可以總結的一個價值,那在這裏不起作用。我期望像data.frame(y=c(21,62,83,4,35,46,17,28), group=c(rep('a',5),rep('b',3)))
這樣的輸出。如果可能的話,我想用dplyr來做,因爲我認爲它提高了可讀性。如何爲每個組返回矢量,而不是單個值的運行功能?
1
A
回答
3
我們可以summarise
創建list
輸出後unnest
做。這將更容易與
library(tidyverse)
df1 %>%
group_by(group) %>%
summarise(value = list(fft(x))) %>%
unnest()
4
基本上有三個選項:
- 如果你想創建每組一個彙總值,使用
summarize
。 - 如果要變換每個組的每個值,請使用
mutate
。 - 如果要爲每個組創建一個新表,請使用
do
。
如果我正確地理解了你,最後一個選項似乎最適合你的目的。 do
一般是這些選項中功能最強大的,也是最難使用的。一般語法是:
data %>%
group_by(grouping_cols) %>%
do(data_frame(col1 = some_transformation(.$x)))
例如:
iris %>%
group_by(Species) %>%
do(broom::tidy(lm(Sepal.Length ~ Sepal.Width, data = .)))
相關問題
- 1. 如何爲每個組返回向量的運行函數,而不是單個值與熊貓?
- 2. 如何返回單個值而不是元組?
- 3. R返回只有一行的每個值在矢量
- 4. Python腳本返回一個數組而不是單個值
- 5. 功能問題,而返回一個值
- 6. OL3矢量/ wfs一個功能而不是很多
- 7. Array返回每行中的每個項目而不是每行一個項目
- 8. 如何放大每個矢量的值
- 9. 兩個矢量減法工作,但除法返回單個數字而不是矢量
- 10. SQL如何讓sql返回一行而不是每個不同ID的多個?
- 11. Regex.Matches返回每行一個比賽,不是每個「單詞」
- 12. 如何讓map函數返回一個值而不是數組?
- 13. 功能不會返回值,而是返回「無」
- 14. 如何在使用。每個功能時返回選定的無線電組值
- 15. 應用功能,以行返回載體,而不是名單
- 16. 返回的功能,而不是結果
- 17. 如何返回一個矢量對象?
- 18. 程序返回到第一個功能,而不是下一個功能
- 19. 返回兩個值的功能,兩個不同的變量是在PHP
- 20. 變量不是。每個功能
- 21. Tensorflow tf.sigmoid()返回一個數組而不是一個標量
- 22. 如何運行返回多個值
- 23. Mysql的加入多行,而不是一個返回結果爲每個實例
- 24. 邏輯語句不返回一個變量,而是一個值
- 25. 你如何返回一個數組,而不是一個對象
- 26. Doctrine2 - 如何返回一個對象,而不是一個數組
- 27. 方法返回功能,而不是串
- 28. 功能不會返回每次運行相同的結果
- 29. 如何總是返回一個數組而不是一個對象爲json?
- 30. 通過pmap傳遞矢量和單個值的功能
啊,獎金第四選項。對於一維輸出數據(比如FFT),我可能更喜歡這個。 –