[英]How to convert each data in a column into a new columns respectively in a new table
假設有一個表格顯示“哪個ID在哪個時間訪問了哪個組織”。 在表中,有一列ID,組織和訪問時間。 由於可以在不同時間訪問多個組織,因此如果他們也訪問其他組織,則可以在ID列中重復某些ID。
我想從初始表中提取ID和Organization列,並且在新表中,我想將組織數據轉換為變量(列),並顯示ID如何與每個組織匹配。
示例數據:
ID <- c( 001, 002, 003, 004, 005, 002)
Organisation <- c( "A", "B", "C", "A","D", "A")
Accessed.Time <- c("17:00", "17:00", "17:00", "17:00", "17:00", "17:02")
df1<-data.frame(ID,Organisation,Accessed.Time)
預期結果如下,例如,(0 =沒有訪問,1 =訪問)
ID Organisation.A Organisation.B Organisation.C
001 1 0 1
002 0 0 1
003 1 1 1
我無法找到我需要使用哪種軟件包或功能。 特別是,是否有人知道如何在列中提取數據,然后將它們作為單個列傳播到新表中?
我們可以使用table
+(table(df1[1:2]) > 0)
這是一個tidyverse
解決方案:
library(tidyverse)
df1 %>%
mutate(Accessed.Time = 1) %>%
spread(Organisation, Accessed.Time, fill = 0)
要么
df1 %>%
count(ID, Organisation) %>%
spread(Organisation, n, fill = 0)
我認為第二種解決方案更優雅,但結果是一樣的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.