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