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