首页 > 解决方案 > 如何根据 R 中的标准查找数据和打印值?

问题描述

所以我有一个包含 12 列数据的 csv 文件,我想要做的是根据所需的标准从 CSV 文件中获取特定值

在此处输入图像描述

提供了数据的片段,所以我有这个地图列表:

Maps <- c("Nuke","Vertigo","Inferno","Mirage","Train","Overpass","Dust2")

目标是获取 Map 列表中每个映射的 CTWinProb 和 TWinProb 值,例如 CTWinProbs;

核弹 = 0.5758

灰尘2 = 0.4965

地狱= 0.4885

等,反之亦然 TWinProb

到目前为止,我一直在使用非常乏味的 sqldf 库,这就是我目前正在做的事情:

T1NukeCT <- sqldf("select CTWinProb from Team1 where MapName like '%Nuke%'")

输出 T1NukeCT = 0.5758

并为每个 Map 重复,然后再为 TWinProb

我确信有一种更简单的方法,只是对使用 R 很新,所以我不是 100% 了解这里的最佳方法,或者如何以一种不那么乏味的方式去做

标签: rdatabasecsvsqldf

解决方案


你可以使用一个WHERE IN (...)子句:

Maps <- c("Nuke","Vertigo","Inferno","Mirage","Train","Overpass","Dust2")
where_in <- paste0("('", paste(Maps, collapse="','"), "')")
sql <- paste0("SELECT CTWinProb FROM Team1 WHERE MapName IN ", where_in)
T1NukeCT <- sqldf(sql)

需要明确的是,上述脚本生成的 SQL 查询为:

SELECT CTWinProb
FROM Team1
WHERE MapName IN ('Nuke','Vertigo','Inferno','Mirage','Train','Overpass','Dust2')

推荐阅读