gpt4 book ai didi

r - 将新的(较短的)列添加到 tibble 并扩展 tibble 以保持整洁

转载 作者:行者123 更新时间:2023-12-01 08:22:49 28 4
gpt4 key购买 nike

我有一个数据框,我需要添加一列以包含对应于现有数据框每一行的 3 个物种。希望下面的例子能说明问题:

Site    Year    Trt
A 2016 bowl
A 2016 vane
A 2017 target
A 2017 stick
B 2016 bowl
B 2016 vane
B 2017 target
B 2017 stick

species<-c("species1", "species2", "species3")

那我想去

Site    Year    Trt     Species
A 2016 bowl species1
A 2016 vane species1
A 2017 target species1
A 2017 stick species1
A 2016 bowl species2
A 2016 vane species2
A 2017 target species2
A 2017 stick species2
A 2016 bowl species3
A 2016 vane species3
A 2017 target species3
A 2017 stick species3
B 2016 bowl species1
B 2016 vane species1
B 2017 target species1
B 2017 stick species1
B 2016 bowl species2
B 2016 vane species2
B 2017 target species2
B 2017 stick species2
B 2016 bowl species3
B 2016 vane species3
B 2017 target species3
B 2017 stick species3

我猜一些 rep 方法可以,但真正的数据集有两个额外的列和 141 个物种。我对所有匹配正确的事情都感到偏执。

最佳答案

如何使用 tidyr::expand 将数据扩展为:

library(tidyverse)
expand(data, nesting(Site, Year, Trt), species) %>% as.data.frame()

# Site Year Trt species
# 1 A 2016 bowl species1
# 2 A 2016 bowl species2
# 3 A 2016 bowl species3
# 4 A 2016 vane species1
# 5 A 2016 vane species2
# 6 A 2016 vane species3
# 7 A 2017 stick species1
# 8 A 2017 stick species2
# 9 A 2017 stick species3
# 10 A 2017 target species1
# 11 A 2017 target species2
# 12 A 2017 target species3
# 13 B 2016 bowl species1
# 14 B 2016 bowl species2
# 15 B 2016 bowl species3
# 16 B 2016 vane species1
# 17 B 2016 vane species2
# 18 B 2016 vane species3
# 19 B 2017 stick species1
# 20 B 2017 stick species2
# 21 B 2017 stick species3
# 22 B 2017 target species1
# 23 B 2017 target species2
# 24 B 2017 target species3

数据

data <- read.table(text = 
"Site Year Trt
A 2016 bowl
A 2016 vane
A 2017 target
A 2017 stick
B 2016 bowl
B 2016 vane
B 2017 target
B 2017 stick",
header = TRUE, stringsAsFactors = FALSE)

species<-c("species1", "species2", "species3")

关于r - 将新的(较短的)列添加到 tibble 并扩展 tibble 以保持整洁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49636755/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com