我想按标题描述性地选择数据。
这里是一个在.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
代码中的lastline伪代码
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
Pseudocode为所有人返回false。
动机:为不同的流行病学群体建立特征相关性matrices,其中每个数据点都有许多自己的特征。
操作系统:Debian 8.5答案 0 :(得分:1)
您可以在R中使用$
表示法。 data$Gender == "male"
就是你想要的。
要从id
为性别的行中获取"male"
,您可以执行此操作
males <- data$Gender == "male"
maleIDs <- data[which(males), ]$ID
这里Eli的一般任务功能很棒
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