簡體   English   中英

如何將列中的每個數據分別轉換為新表中的新列

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

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