数据表中的R列未填充,但没有错误

数据表中的R列未填充,但没有错误,r,shiny,R,Shiny,我正在用我从csv文件中检索的男女工资建立一个数据表。代码运行后,我得到了一个数据表,但缺少salary和“pensioengrondslag”列。 我在下面编码的方式是,这样我就可以在给定的年龄查找每个性别的工资。 R不会返回错误,我已经检查了我的代码很多次了,但我不能找出什么是错误的 也许其他人知道?我们将非常感谢您的帮助! 这是我的代码: 服务器.R: library(prodlim) library(lubridate) library(DT) library(eeptools) f

我正在用我从csv文件中检索的男女工资建立一个数据表。代码运行后,我得到了一个数据表,但缺少salary和“pensioengrondslag”列。 我在下面编码的方式是,这样我就可以在给定的年龄查找每个性别的工资。 R不会返回错误,我已经检查了我的代码很多次了,但我不能找出什么是错误的

也许其他人知道?我们将非常感谢您的帮助! 这是我的代码:

服务器.R:

library(prodlim)
library(lubridate)
library(DT)
library(eeptools)


function(input, output) {
  insert <- reactive({

    # Genereer geboortedata
    GeboorteDatum <- sample(seq(as.Date('1900/01/02'), as.Date(input$geboorteData[2]), by = "day"), input$aantalDeelnemers, replace = TRUE)

    # Genereer het geslacht
    if (input$manVrouwVerhouding == "alleen mannen") {
      Geslacht <- sample("M", replace = TRUE, size = input$aantalDeelnemers)
    }
    if (input$manVrouwVerhouding == "0.9/0.1") {
      Geslacht <- sample(c("M","V"), replace = TRUE, size = input$aantalDeelnemers, prob = c(0.9,0.1))
    }
    if (input$manVrouwVerhouding == "0.8/0.2") {
      Geslacht <- sample(c("M","V"), replace = TRUE, size = input$aantalDeelnemers, prob = c(0.8,0.2))
    }
    if (input$manVrouwVerhouding == "0.7/0.3") {
      Geslacht <- sample(c("M","V"), replace = TRUE, size = input$aantalDeelnemers, prob = c(0.7,0.3))
    }
    if (input$manVrouwVerhouding == "0.6/0.4") {
      Geslacht <- sample(c("M","V"), replace = TRUE, size = input$aantalDeelnemers, prob = c(0.6,0.4))
    }
    if (input$manVrouwVerhouding == "0.5/0.5") {
      Geslacht <- sample(c("M","V"), replace = TRUE, size = input$aantalDeelnemers, prob = c(0.5,0.5))
    }
    if (input$manVrouwVerhouding == "0.4/0.6") {
      Geslacht <- sample(c("M","V"), replace = TRUE, size = input$aantalDeelnemers, prob = c(0.4,0.6))
    }
    if (input$manVrouwVerhouding == "0.3/0.7") {
      Geslacht <- sample(c("M","V"), replace = TRUE, size = input$aantalDeelnemers, prob = c(0.3,0.7))
    }
    if (input$manVrouwVerhouding == "0.2/0.8") {
      Geslacht <- sample(c("M","V"), replace = TRUE, size = input$aantalDeelnemers, prob = c(0.2,0.8))
    }
    if (input$manVrouwVerhouding == "0.1/0.9") {
      Geslacht <- sample(c("M","V"), replace = TRUE, size = input$aantalDeelnemers, prob = c(0.1,0.9))
    }
    if (input$manVrouwVerhouding == "alleen vrouwen") {
      Geslacht <- sample("V", replace = TRUE, size = input$aantalDeelnemers)
    }

    # Bereken leeftijden
    vectorDatumBeginDitJaar <- sample(as.Date('2018/01/01'), size = input$aantalDeelnemers, replace = TRUE)
    Leeftijd <- as.integer(age_calc(GeboorteDatum, vectorDatumBeginDitJaar, units = "years"))

    ## Creër salaris

    # Lees bestand in
    salaris <- read.csv("inkomens.csv", header = TRUE)
    leeftijdenBestand <- salaris[, "X...Leeftijd"]

    # Bepaal leeftijden waarop pensioen opgebouwd wordt (0-20 en 67-130 niet)
    pensioenOpbouwLeeftijden <- function(x){
      ouderDanPlft <- match(x, seq(67:130), nomatch = "NA")
      a <- c(0,seq(0:19))
      nieuw <- match(Leeftijd, a, nomatch = 0)
      inverse <- match(nieuw, "0", nomatch = "NA")
      salarisLeeftijden <- ouderDanPlft * inverse
      salarisLeeftijden
    }

    # Zoek voor elke leeftijd de index van de bijbehorende salaris
    teGebruikenLeeftijd <- pensioenOpbouwLeeftijden(Leeftijd)
    zoekIndices <- match(teGebruikenLeeftijd, leeftijdenBestand)

    # Bepaal de salaris per leeftijd voor mannen
    y <- match(Geslacht, "M")
    salarisMannen <- y*zoekIndices

    # Bepaal de salaris per leeftijd voor vrouwen
    x <- match(Geslacht, "V")
    salarisVrouwen <- x*zoekIndices

    # Creër schalen (kolom opzoeken)
    salarisMannenCategorie1 <- salaris[salarisMannen, 2]
    salarisMannenCategorie2 <- salaris[salarisMannen, 3]
    salarisMannenCategorie3 <- salaris[salarisMannen, 4]
    salarisMannenCategorie4 <- salaris[salarisMannen, 5]
    salarisMannenCategorie5 <- salaris[salarisMannen, 6]

    salarisVrouwenCategorie1 <- salaris[salarisVrouwen, 7]
    salarisVrouwenCategorie2 <- salaris[salarisVrouwen, 8]
    salarisVrouwenCategorie3 <- salaris[salarisVrouwen, 9]
    salarisVrouwenCategorie4 <- salaris[salarisVrouwen, 10]
    salarisVrouwenCategorie5 <- salaris[salarisVrouwen, 11]

    # Link input aan salaris schaal
    if(input$salarisSchaal == "schaal 1"){
      Salaris <- salarisMannenCategorie1 + salarisVrouwenCategorie1
    }
    if(input$salarisSchaal == "schaal 2"){
      Salaris <- salarisMannenCategorie2 + salarisVrouwenCategorie2
    }
    if(input$salarisSchaal == "schaal 3"){
      Salaris <- salarisMannenCategorie3 + salarisVrouwenCategorie3
    }
    if(input$salarisSchaal == "schaal 4"){
      Salaris <- salarisMannenCategorie4 + salarisVrouwenCategorie4
    }
    if(input$salarisSchaal == "schaal 5"){
      Salaris <- salarisMannenCategorie5 + salarisVrouwenCategorie5
    }


    # Parttime percentage
    #Parttime_Percentage <- as.numeric(100, input$aantalDeelnemers)

    # Bereken aanspraak
    Pensioengrondslag <- (Salaris - input$franchise)

    # Creër tabel
    data <- data.frame(GeboorteDatum, Leeftijd , Geslacht, Salaris, Pensioengrondslag)
    data
  })

  # render table
  output$table <- DT::renderDataTable(DT::datatable({
    insert()
  }))
}
这是因为最后一个向量中的“NA”。使用以下代码将“NA”更改为0,修复了我的问题:

na.zero <- function (x) {
      x[is.na(x)] <- 0
      return(x)
    }
na.zero
na.zero <- function (x) {
      x[is.na(x)] <- 0
      return(x)
    }