簡體   English   中英

如何對 1 行中的列進行分組並在 r 中收集信息?

[英]How to group columns in 1 row and gather information in r?

我有這個data.frame:

# Variable 1        Variable 2    Business(spec)
# Name Business     Macaco SA     NA
# ID Business       10            NA
# Type Business     Fishing       NA
# Name Business     Simio SA      NA
# ID Business       20            NA
# Type Business     Other         Transport

這是我導入到 R 的 excel 中的一個文件。 變量 2 是特定業務類型的列表。 如果業務類型不在列表中,則在Business(Spec)中他們需要編寫業務類型(因此該變量可以具有不同的值)。 我想這樣排序:

# Name Business    ID Business    Type Business    Business(spec)
# Macaco SA        10             Fishing          NA
# Simio SA         20             Other            Transport

我嘗試使用pivot_wider(data, names_from = "Variable 1", values_from = "Variable 2")但它沒有用。 我怎樣才能做到這一點?

謝謝!!

如果您可以將事物組合在一起(總是 3 行嗎?),那么您就有更好的機會。

我不得不修改數據以更輕松地使用它,因此變量名稱和值略有不同。

dat <- read.table(header=TRUE, stringsAsFactors=FALSE, text="
Variable1         Variable2     Business(spec)
Name_Business     Macaco_SA     NA
ID_Business       10            NA
Type_Business     Fishing       NA
Name_Business     Simio_SA      NA
ID_Business       20            NA
Type_Business     Other         Transport")

dat$grp <- cumsum(dat$Variable1 == "Name_Business")
dat
#       Variable1 Variable2 Business.spec. grp
# 1 Name_Business Macaco_SA           <NA>   1
# 2   ID_Business        10           <NA>   1
# 3 Type_Business   Fishing           <NA>   1
# 4 Name_Business  Simio_SA           <NA>   2
# 5   ID_Business        20           <NA>   2
# 6 Type_Business     Other      Transport   2
pivot_wider(dat, id_cols = "grp", names_from = "Variable1", values_from = "Variable2")
# # A tibble: 2 x 4
#     grp Name_Business ID_Business Type_Business
#   <int> <chr>         <chr>       <chr>        
# 1     1 Macaco_SA     10          Fishing      
# 2     2 Simio_SA      20          Other        

這假設"Name_Business"始終是一組行中的第一個,並且緊隨其后的所有內容都與該行相關。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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