Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带R的条件格式_R - Fatal编程技术网

带R的条件格式

带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

我试图用两个表CS8_2007_2009_M&F.csv和courbederowissance_M&F.csv来表达一个有点复杂的条件表达式

第一个表包含大约60000个个体nocs8,这些个体的体重“weight”和年龄“agegestationnel”值

在第二个表格中,我有年龄“GA”对应的第三、第五和第十个体重百分位数,分别为“3%”、“5%”和“10%”

我想根据年龄“GA”和相应的体重百分位数“3%”、“5%”和“10%”对个人nocs8进行编码

这是我的剧本:

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"