带R的条件格式
我试图用两个表CS8_2007_2009_M&F.csv和courbederowissance_M&F.csv来表达一个有点复杂的条件表达式 第一个表包含大约60000个个体nocs8,这些个体的体重“weight”和年龄“agegestationnel”值 在第二个表格中,我有年龄“GA”对应的第三、第五和第十个体重百分位数,分别为“3%”、“5%”和“10%” 我想根据年龄“GA”和相应的体重百分位数“3%”、“5%”和“10%”对个人nocs8进行编码 这是我的剧本:带R的条件格式,r,R,我试图用两个表CS8_2007_2009_M&F.csv和courbederowissance_M&F.csv来表达一个有点复杂的条件表达式 第一个表包含大约60000个个体nocs8,这些个体的体重“weight”和年龄“agegestationnel”值 在第二个表格中,我有年龄“GA”对应的第三、第五和第十个体重百分位数,分别为“3%”、“5%”和“10%” 我想根据年龄“GA”和相应的体重百分位数“3%”、“5%”和“10%”对个人nocs8进行编码 这是我的剧本: mydata=fre
mydata=fread("CS8_2007_2009_M&F.csv",
colClasses = c(rep("character", 5),
rep("numeric", 5 ),
"character",
rep("numeric", 7 ),
rep("character", 9), "numeric"))
setkey(mydata,nocs8)
weight=fread("CourbeDeCroissance_M&F.csv")
setkey(poids, GA)
正常重量
mydata[,quant:=0]
重量<10%
mydata[, quant:=if(weight[GA==agegestationnel,`10%`]>mydata[[weight]]) 1, by = 1:nrow(mydata)]
重量<5%
mydata[, quant:=if(weight[GA==agegestationnel,`5%`]>mydata[[weight]]) 1, by = 1:nrow(mydata)]
重量<3%
mydata[, quant:=if(weight[GA==agegestationnel,`3%`]>mydata[[weight]]) 1, by = 1:nrow(mydata)]
我收到一条错误消息:
« Error in weight["GA" == agegestationnel, "10%"] :
incorrect number of dimensions
»
我想知道这是因为我的样本nocs8=60000的大尺寸,还是我要求的23GA X 3百分位数=46的大量条件?如果是,我该怎么办?我终于找到了答案:
mydata <- read.csv("file1.csv", sep=";")
weight <- read.csv("file2.csv", sep=";")
data_merge <- merge(mydata, weight, by.x=14, by.y=1, all.x=TRUE)
data_merge$categ = NA
data_merge[!is.na(data_merge$weight) & !is.na(data_merge$X10.) & (data_merge$weight > data_merge$X10.), "categ"] = "Normal"
data_merge[!is.na(data_merge$weight) & !is.na(data_merge$X10.) & (data_merge$weight < data_merge$X10.), "categ"] = "low"
data_merge[!is.na(data_merge$poids) & !is.na(data_merge$X5.) & (data_merge$weight < data_merge$X5.), "categ"] = "very low"
data_merge[!is.na(data_merge$poids) & !is.na(data_merge$X3.) & (data_merge$weight < data_merge$X3.), "categ"] = "Extremely low"