簡體   English   中英

在表格的R中,如何通過為每個主題從另一行減去另一行來創建新行

[英]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_eachdplyr

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM