我有一个如下所示的数据框:
draftclasses
Name Yards TDs Class
Joe Smith 333.3 34 2017
Carson Mathers 386.2 22 2021
Bo Someome 345.2 22 2022
Im Notgood 170.99 7 2017
我想要做的是获取 Yards
列中每个值的所有 Class
子集。我知道要过滤掉数据框的一个子集:
year2021 = draftclass[!is.na(draftclasses$Yards) & draftclasses$Class == 2022,]
我也知道我会使用 for 循环,但不知道如何设计它。我已经在网上阅读了一些内容,但我仍然不确定如何运行循环来获取 Class
列中每年的此输入。
理想情况下,我希望每年在 Class
中用一串与类相关的所有码数标记一个对象,如下所示:
> year2017
[1] "333.3" "170.99"
任何帮助将不胜感激。谢谢。
答案 0 :(得分:0)
在 split
的帮助下,我们可以为每个 split
Yards
Class
。
result <- split(draftclasses$Yards, draftclasses$Class)
这将返回 result
中的一个列表,如果您希望每个 Class
都有一个单独的向量,您可以命名该列表并使用 list2env
。
names(result) <- paste0('year', names(result))
list2env(result, .GlobalEnv)
year2017
#[1] 333.30 170.99
year2021
#[1] 386.2
year2022
#[1] 345.2