我有我的數據幀:移調data.frame [R
Name Time Event
Serg 15 Log1
Nate 15 Log2
Serg 10 Log3
Nate 9 Log1
Nate 20 Log5
而且我想通過時間time
這樣的移調它爲每一個Name
:
Name 1 2 3
Serg Log3 Log1 NA
Nate Log1 Log2 Log5
希望我解釋清楚!謝謝
我有我的數據幀:移調data.frame [R
Name Time Event
Serg 15 Log1
Nate 15 Log2
Serg 10 Log3
Nate 9 Log1
Nate 20 Log5
而且我想通過時間time
這樣的移調它爲每一個Name
:
Name 1 2 3
Serg Log3 Log1 NA
Nate Log1 Log2 Log5
希望我解釋清楚!謝謝
我們可以從data.table
使用dcast
。通過創建一個序列ID(rowid
- from data.table
做'Name'變量),將'data.frame'轉換爲'data.table'(setDT(df1)
),然後將dcast
數據集轉換爲'wide'格式,公式,並指定value.var
爲 「事件」
library(data.table)
dcast(setDT(df1)[order(Name, Time)], Name ~ rowid(Name), value.var = "Event")
# Name 1 2 3
#1: Nate Log1 Log2 Log5
#2: Serg Log3 Log1 NA
或者使用tidyverse
library(dplyr)
library(tidyr)
df1 %>%
group_by(Name) %>%
arrange(Name, Time) %>%
mutate(ind = row_number()) %>%
select(-Time) %>%
spread(ind, Event)
# Name `1` `2` `3`
#* <chr> <chr> <chr> <chr>
#1 Nate Log1 Log2 Log5
#2 Serg Log3 Log1 <NA>
在desider輸出
,名爲SERG意外或做你挑'Log3' asthe第一排值故意? – sgp667
沒關係我看到模式 – sgp667