如何在R.CSV数据中通过标题进行描述性选择?

如何在R.CSV数据中通过标题进行描述性选择?,r,csv,R,Csv,我想通过标题描述选择数据。 下面是一个在.CSV数据中选择男性ID的示例。 您可以使用以下数据执行data[3]==“males”,但我希望执行data[Gender]==“males”以避免任何错误。 文件data.csv ID,Age,Gender 100,69,male 101,75,female 102,84,female 103,,male 104,66,female 最后一行伪代码所在的代码 data = read.csv("/home/masi/data.csv",header

我想通过标题描述选择数据。 下面是一个在.CSV数据中选择男性ID的示例。 您可以使用以下数据执行
data[3]==“males”
,但我希望执行
data[Gender]==“males”
以避免任何错误。 文件data.csv

ID,Age,Gender
100,69,male
101,75,female
102,84,female
103,,male
104,66,female
最后一行伪代码所在的代码

data = read.csv("/home/masi/data.csv",header = TRUE,sep = ",")
str(data)

# PSseudocode
#data.Gender == "male"
#data[Gender] == "male"
伊莱 现在,我们有一个雄性的列表,我们想返回与这些雄性对应的ID

eliData <- data$Gender == "male"
# to return IDs corresponding to males
# Pseudocode
data$ID == eliData

eliData您可以使用R中的
$
表示法来表示该值
data$Gender==“male”
是您想要的。 要从行中获取
id
s,其中
“男性”
是性别,您可以这样做

males <- data$Gender == "male"
maleIDs <- data[which(males), ]$ID

males=20和@Masi你能举个例子说明你想要什么结果吗?我不完全理解您在这里提出的问题。@Masi更改了我的代码,以便为您提供更多您需要的信息want@Masi这就是你想要的吗?@Masi
R
有一个隐式返回。我不太清楚为什么
return
不起作用。这是一种解释。
getIDs <- function(age, gender) {
        data <- read.csv("/home/masi/data.csv",header = TRUE,sep = ",")

        gender <- data$Gender == gender
        if (length(age) == 1) {
                ages <- data$Age == age
        } else {
                ages <- (data$Age >= age[1] & data$Age <= age[2])
        }
        genderIDs <- data[which(gender), ]$ID
        ageIDs <- data[which(ages), ]$ID
        intersect(ageIDs, genderIDs)
}
# So if you called this as getIDs(c(20, 30), "male")
# You'd get the ids of all males with age >= 20 and <= 30