[英]In R for a table, how to create new rows by substracting one row from another for each subject
所以我有一張桌子d,看起來像這樣
id trial V1 V2 V3 V4
101 1 1 1 1 1
101 2 10 12 13 20
101 3 3 3 2 9
102 1 1 1 1 1
102 2 10 12 11 11
102 3 9 8 7 6
103 1 1 1 1 1
103 2 2 3 4 5
103 3 11 12 13 14
...
基本上,我需要在新表中創建新行,以顯示每個變量(V1,V2,V3,V4)的試驗3和試驗1之間的區別,也許是這樣的:如果是新表:
id V1 V2 V3 V4
101 2 2 1 8
102 8 7 6 5
103 10 12 13 14
...
我在想也許使用dplyr並按id聚合它,讓每一列都不同,但是不確定dplyr是否可以做到這一點,所以現在我有點卡住了。 任何想法,將不勝感激。
假設你總是在每個ID 1,2,3試驗-你可以定義一個函數,並使用summarize_each
在dplyr
library(dplyr)
myfun <- function(x) { x[[3]]-x[[1]] }
df %>%
group_by(id) %>%
summarize_each(funs(myfun)) %>%
select(-trial)
id V1 V2 V3 V4
(int) (int) (int) (int) (int)
1 101 2 2 1 8
2 102 8 7 6 5
3 103 10 11 12 0
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.