我是 R 的新手,因此這個基本問題。
我有一個約 700 行和 25 列的資料框。每一行都是一個約會,其中包含有關該約會的資訊(時間、優先級、性別)。這些行有一個 7 位數字形式的唯一識別符號,并且同一識別符號有多個行(當同一個人進入多個約會時)。
| ID | 優先事項 | 時間 |
|---|---|---|
| 234 | 讀 | 10/29 |
| 546 | 寫作 | 10/30 |
| 678 | 溝通 | 10/29 |
| 546 | 溝通 | 11/1 |
| 234 | 寫作 | 11/1 |
我想做的是創建一個新的資料框,其中包含每個唯一 ID 以及第一次訪問、第二次訪問等的優先級。
| ID | 優先事項 1 | 優先事項 2 |
|---|---|---|
| 234 | 讀 | 寫作 |
| 546 | 寫作 | 溝通 |
| 678 | 溝通 |
到目前為止,我擁有所有唯一識別符號的串列:
uniqueID <- 唯一(資料$ID)
現在我想根據這些唯一識別符號從 PRIORITY 中提取資料。
uj5u.com熱心網友回復:
你可以做:
df <- data.frame(ID = c(234, 546, 678, 546, 234),
PRIORITY = c("Reading", "Writing", "Communication", "Communication", "Writing"),
TIME = c("10/29", "10/30", "10/29", "11/1", "11/1"))
library(tidyverse)
df %>%
group_by(ID) %>%
mutate(ID_count = 1:n()) %>%
ungroup() %>%
pivot_wider(id_cols = ID,
values_from = c(PRIORITY, TIME),
names_from = ID_count)
這使:
# A tibble: 3 x 5
ID PRIORITY_1 PRIORITY_2 TIME_1 TIME_2
<dbl> <chr> <chr> <chr> <chr>
1 234 Reading Writing 10/29 11/1
2 546 Writing Communication 10/30 11/1
3 678 Communication <NA> 10/29 <NA>
uj5u.com熱心網友回復:
這也是另一種選擇:
library(dplyr)
library(tidyr)
dummy_data <- data.frame(
"ID" = c(234,546,678,546,234),
"PRIORITY" = c("Reading","Writing","Communication","Communication","Writing"),
"TIME" = c("10/29","10/30","10/29","11/1","11/1"))
income_data_drop <- dummy_data %>% pivot_wider(names_from = "TIME", values_from = "PRIORITY")
income_data_drop
ID `10/29` `10/30` `11/1`
<dbl> <chr> <chr> <chr>
1 234 Reading <NA> Writing
2 546 <NA> Writing Communication
3 678 Communication <NA> <NA>
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/356521.html
標籤:r
上一篇:沿一個方向偏移多段線
