【问题标题】:Conditional formatting with R使用 R 进行条件格式化
【发布时间】:2016-09-22 00:13:28
【问题描述】:

我正在尝试使用两个表(“CS8_2007_2009_M&F.csv”和“CourbeDeCroissance_M&F.csv”)来制定一个有点复杂的条件表达式。

第一个表包含大约 60 000 个个体 (nocs8),它们具有体重(“体重”)和年龄(“agegestationnel”)值

在第二张表中,我有年龄(“GA”)相应的第 3、第 5 和第 10 个体重百分位数(分别为“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]

重量

mydata[, quant:=if(weight[GA==agegestationnel,`10%`]>mydata[[weight]]) 1, by = 1:nrow(mydata)]

重量

mydata[, quant:=if(weight[GA==agegestationnel,`5%`]>mydata[[weight]]) 1, by = 1:nrow(mydata)]

重量

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)?如果是这样,我该怎么办?

【问题讨论】:

    标签: r


    【解决方案1】:

    我终于找到了答案:

    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"
    

    【讨论】:

      猜你喜欢
      • 2019-12-17
      • 1970-01-01
      • 2013-05-19
      • 2018-03-10
      • 2013-10-11
      • 2019-03-06
      • 2011-12-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多