【发布时间】:2015-09-24 21:36:35
【问题描述】:
我有以下代码
tourneySeeds<-read.csv("tourney_seeds.csv")
regSeason<-read.csv("regular_season_compact_results.csv")
playoff_teams <- sort(tourneySeeds$team[which(tourneySeeds$season == "2013")])
...
#Selecting the seeds for season A
playoff_seeds <- tourneySeeds[which(tourneySeeds$season == "2013"), ]
seed_col <- vector()
BPI_col<-vector()
for(i in playoff_teams) {
val <- match(i, playoff_seeds$team)
seed_col <- c(seed_col, playoff_seeds$seed[val])
BPI_col <- c(BPI_col, playoff_seeds$BPI[val])
}
#team_seed <- data.frame("Var1" = playoff_teams, "Freq" =seed_col)
team_seed<-data.frame()
team_seed <- cbind(playoff_teams, seed_col,BPI_col)
head(team_seed$seed_col)
tourneySeeds 数据框的样子
season seed team BPI
1980 W01 1207 5
1980 W02 1210 8
...
但是,对于head(team_seed$seed_col),我收到消息Error in team_seed$seed_col : $ operator is invalid for atomic vectors
这是为什么?我已经将team_seed 设置为包含seed_col 的数据框
【问题讨论】:
-
一个简单的解决方案是使用
head(team_seed[,"seed_col"]),它适用于原子向量 -
但我不希望
team_seed$seed_col成为原子向量,因为稍后在代码中我使用了cbind和其他向量将它们组合成数据框 -
检查
class(team_seed)。它很可能会说"matrix"。美元符号运算符不适用于矩阵。如果您想使用它,请尝试as.data.frame(team_seed)。