在 R 中,如何在管道表达式中重新排序 tbl 的变量?
In R, how can I reorder variables of a tbl within a piped expression?
我使用以下管道表达式加载了 .csv 文件、转换为 tbl、重命名变量、突变等:
h2020orgs <- read.csv2(file="C:/Users/Geoff/Desktop/Personal/DataCamp/R/R projects/Horizon_2020_orgs_data/cordis_h2020_orgs.csv") %>%
tbl_df() %>%
select(1:15) %>%
rename(projectRcn = ï..projectRcn,
orgType = activityType,
orgRole = role,
orgID = id,
orgName = name,
orgShortName = shortName) %>%
mutate(orgTypeFull = recode(orgType,
HES = "Higher education",
OTH = "Other",
PRC = "Private company",
PUB = "Public body",
REC = "Research centre"))
使用names(h2020orgs)可以看到变量索引:
names(h2020orgs)
[1] "projectRcn" "projectID" "projectAcronym" "orgRole"
[5] "orgID" "orgName" "orgShortName" "orgType"
[9] "endOfParticipation" "ecContribution" "country" "street"
[13] "city" "postCode" "organizationUrl" "orgTypeFull"
我想移动 "orgTypeFull" 使其与 "orgType" 相邻(紧接其后)。我知道我可以使用以下独立调用来执行此操作:h2020orgs <- h2020orgs[, c(...)]
但是有没有办法将其包含在上面的管道表达式中?
使用 select([...], orgType, orgTypeFull, [...])
,其中 [...]
表示 "put other column names there"。
您可以使用 dplyr
中的 select()
按名称或索引对列重新排序。
使用索引:
... %>% select(1:8, 16, 9:15)
您可以使用 data.table 包中的 setcolorder
:
h2020orgs %>% setcolorder(c(1:8,16:9))
或者没有管道:
setcolorder(h2020orgs, c(1:8,16:9))
我使用以下管道表达式加载了 .csv 文件、转换为 tbl、重命名变量、突变等:
h2020orgs <- read.csv2(file="C:/Users/Geoff/Desktop/Personal/DataCamp/R/R projects/Horizon_2020_orgs_data/cordis_h2020_orgs.csv") %>%
tbl_df() %>%
select(1:15) %>%
rename(projectRcn = ï..projectRcn,
orgType = activityType,
orgRole = role,
orgID = id,
orgName = name,
orgShortName = shortName) %>%
mutate(orgTypeFull = recode(orgType,
HES = "Higher education",
OTH = "Other",
PRC = "Private company",
PUB = "Public body",
REC = "Research centre"))
使用names(h2020orgs)可以看到变量索引:
names(h2020orgs)
[1] "projectRcn" "projectID" "projectAcronym" "orgRole"
[5] "orgID" "orgName" "orgShortName" "orgType"
[9] "endOfParticipation" "ecContribution" "country" "street"
[13] "city" "postCode" "organizationUrl" "orgTypeFull"
我想移动 "orgTypeFull" 使其与 "orgType" 相邻(紧接其后)。我知道我可以使用以下独立调用来执行此操作:h2020orgs <- h2020orgs[, c(...)]
但是有没有办法将其包含在上面的管道表达式中?
使用 select([...], orgType, orgTypeFull, [...])
,其中 [...]
表示 "put other column names there"。
您可以使用 dplyr
中的 select()
按名称或索引对列重新排序。
使用索引:
... %>% select(1:8, 16, 9:15)
您可以使用 data.table 包中的 setcolorder
:
h2020orgs %>% setcolorder(c(1:8,16:9))
或者没有管道:
setcolorder(h2020orgs, c(1:8,16:9))