我使用RStudio将一个csv文件导入到R中,我试图用每场比赛的分数来计算每场比赛的得分.然而,每场比赛的分钟数格式为mm:ss,我很难找到如何将其转换为十进制形式.
请帮忙!
Jor*_*eys 25
鉴于您从字符向量开始,这相对容易:
minPerGame <- c("4:30","2:20","34:10")
sapply(strsplit(minPerGame,":"),
function(x) {
x <- as.numeric(x)
x[1]+x[2]/60
}
)
Run Code Online (Sandbox Code Playgroud)
给
[1] 4.500000 2.333333 34.166667
Run Code Online (Sandbox Code Playgroud)
确保检查了您使用read.csv()该选项as.is=TRUE.否则你将不得不转换使用as.character().
你需要十进制吗?如果以正确的格式存储数据,例如作为类的对象,POSIXltR的日期时间类之一,R将以数字方式处理时间的正确处理.这是我的意思的一个例子:
首先,我们创建一些虚拟数据用于说明目的:
set.seed(1)
DF <- data.frame(Times = seq(as.POSIXlt("10:00", format = "%M:%S"),
length = 100, by = 10),
Points = cumsum(rpois(100, lambda = 1)))
head(DF)
Run Code Online (Sandbox Code Playgroud)
忽略这里有日期的事实,当我们进行绘图时,它实际上被忽略,因为所有观察具有相同的日期部分.接下来我们使用R的公式接口绘制它:
plot(Points ~ Times, data = DF, type = "o")
Run Code Online (Sandbox Code Playgroud)
产生这个:
