首页 > 解决方案 > 如何访问 R 数据框中的单个项目?

问题描述

所以我正在研究另一种语言(R),并且需要能够查看数据框中的各个项目(?)。我已经尝试了多种方法来访问它,但到目前为止,我对 R 想要我做什么来解决这个问题感到困惑。当前代码:

empStatistics <- read.csv("C:/temp/empstats.csv", header = TRUE, row.names = NULL, encoding = "UTF-8", sep = ",", dec = ".", quote = "\"", comment.char = "") 
attach(empStatistics)
library(svDialogs)
Search_Item <- dlgInput("Enter a Category", "")$res
if (!length(Search_Item)) {
  cat("You didn't pick anything!?")
} else {
    Category <- empStatistics[Search_Item]
  }
Employee_Name <- dlgInput("Enter a Player", "")$res
if (!length(Employee_Name)) {
  cat("No Person Selected!\n")
} else {
  cat(empStatistics[Employee_Name, Search_Item])
}

和我的 csv 文件的样本:

Name,Age,Salary,Department
Frank,25,40000,IT
Joe,24,40000,Sales
Mary,34,56000,HR
June,39,70000,CEO
Charles,60,120000,Janitor

从我习惯的语言来看,我本来希望括号可以工作,但显然不是这里的情况,所以我尝试寻找其他解决方案,包括将每个变量分成自己的括号,试图弄清楚如何使用子集()(在那里失败,不确定它是否适用),试图找出如何获取列和行索引,以及其他一些我不确定我能描述的事情。

如何在变量中输入值,然后使用它来获取单个数据(例如,输入“Frank”作为名称,输入“Age”作为搜索项,然后返回 25 或“June”作为名称和“部门”为搜索项取回“CEO”)?

标签: r

解决方案


如果你想这样访问它,你可以这样做:

Search_Item  <- "Salary"
Employee_Name <- "Frank"

empStatistics <- read.csv("empstats.csv",header = TRUE, row.names = 1)
empStatistics[Employee_Name,Search_Item]
[1] 40000

R 的 data.frame 没有索引。您可以尝试的另一件事是:

empStatistics <- read.csv("empstats.csv",header = TRUE)
empStatistics[match(Employee_Name,empStatistics$Name),Search_Item]
[1] 40000

推荐阅读