首页 > 解决方案 > 为数据框中的每个变量创建一个向量

问题描述

从我在 R 中的第一个家庭项目开始,并且在读取我的数据框以进行未来算法构建时遇到了麻烦。在这种情况下,我只想遍历数据框并将每个观察(行)的数据存储到向量或类似的数据结构中。每个数据结构将由一个字符串和一些整数和双精度数组成。我面临的警告是我希望我构建的每个数据结构都与其包含的字符串相关联。因此,从我的数据框图像中可以看出,每次循环时,我都想创建一个为每个 Stats$teamName 命名的结构,其中包含观察中的所有进行数据。数据框的图像

因此,在循环第一次观察之后,我希望创建一个名为“Virginia”的结构,如下所示: ("Virginia", 2, 1, 1, 2) 等每一行。

标签: rloopsfor-loopmatrixvector

解决方案


如果您需要每个团队的对象,您可以使用split()然后将每个数据框存储在列表中。最好将数据保留在列表中,如果需要有单独的数据框,您可以使用list2env(). 这里有一个例子:

#Data
df <- data.frame(teamName=c('Virginia','Duke','UNC'),
                 conferenceRank=c(2,3,1),
                 mmRank=c(1,1,1),
                 apiRank=c(1,3,7),
                 rankOfConference=c(2,2,2),
                 stringsAsFactors = F)
#Create objects per team
L <- split(df,df$teamName)
#set to envir
list2env(L,envir = .GlobalEnv)

该对象L将如下所示:

L
$Duke
  teamName conferenceRank mmRank apiRank rankOfConference
2     Duke              3      1       3                2

$UNC
  teamName conferenceRank mmRank apiRank rankOfConference
3      UNC              1      1       7                2

$Virginia
  teamName conferenceRank mmRank apiRank rankOfConference
1 Virginia              2      1       1                2

推荐阅读